gpt4 book ai didi

javascript - JS加载响应不起作用

转载 作者:行者123 更新时间:2023-12-03 05:47:05 24 4
gpt4 key购买 nike

我正在使用 JavaScript 构建一个基本计算器。

<script>
function loadResponse(x){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById("resultDiv").innerHTML = xmlhttp.responseText;
}
}
var uri = "http://localhost:8080/REST_service/rest/calculator/";
switch(x){
case 1:
uri += "add/";
break;

case 2:
uri += "subtract/";
break;

case 3:
uri += "multiply/";
break;

case 4:
uri += "divide/";
break;
default:
break;
}

uri += document.getElementsByName("num1").value + "/" +
document.getElementsByName("num2");
console.log(uri);
xmlhttp.open("POST", uri, true);
xmlhttp.send();
}
</script>
<body>
Number 1: <input type="text" name="num1" />
Number 2: <input type="text" name="num2" />
<input type="button" onclick="loadResponse(1)" value="ADD" />
<input type="button" onclick="loadResponse(2)" value="SUBTRACT" />
<input type="button" onclick="loadResponse(3)" value="MULTIPLY" />
<input type="button" onclick="loadResponse(4)" value="DIVIDE" />

<div id="resultDiv"></div>
</body>

但是 console.log 不起作用,因此该函数没有被调用。

我做错了什么?如何以更好的方式改进此代码调用 loadResponse 并将值发送到服务器端?

谢谢

最佳答案

这一行是错误的:

    uri += document.getElementsByName("num1").value + "/" +
document.getElementsByName("num2");

getElementsByName() 返回一个 NodeList,因此您需要对其进行索引才能访问该值。并且您没有对第二个字段使用 .value 。应该是:

    uri += document.getElementsByName("num1")[0].value + "/" +
document.getElementsByName("num2")[0].value;

关于javascript - JS加载响应不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40296825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com