function submit() { var site1=document.getElementById("site1"); var site2=document.getElementById("site2"); var site3=site1.options[site1.selectedIndex].innerText; var site4=site2.options[site2.selectedIndex].innerText; $.ajax({ url:"${pageContext.request.contextPath}/calculate", type:"post", data: JSON.stringify({site1:site3,site2:site4}), contentType:"application/json;charset=UTF-8", }); }修改以下
时间: 2024-02-14 22:04:35 浏览: 187
js中document.getElementByid、document.all和document.layers区分介绍
根据您的代码,我看到您想要使用 Ajax 发送 POST 请求,并将两个下拉框的选项作为数据传递给服务器端的 calculate 方法。如果您需要修改代码,可以尝试以下方式:
```
function submit() {
var site1 = document.getElementById("site1");
var site2 = document.getElementById("site2");
var site3 = site1.options[site1.selectedIndex].value; // 修改此处为获取选中项的 value 属性
var site4 = site2.options[site2.selectedIndex].value; // 修改此处为获取选中项的 value 属性
$.ajax({
url: "${pageContext.request.contextPath}/calculate",
type: "post",
data: {
site1: site3,
site2: site4
}, // 修改此处为直接传递一个对象
dataType: "json" // 修改此处为指定返回数据的类型
});
}
```
需要注意的是,您的 `site3` 和 `site4` 变量在原代码中是通过 `innerText` 属性获取的,这可能会导致数据的不准确性。建议使用 `value` 属性获取选中项的值。另外,您可以通过 `data` 参数直接传递一个对象,无需使用 `JSON.stringify()` 方法进行转换。最后,您可以通过 `dataType` 参数指定服务器返回的数据类型。
阅读全文