以下JS无法正常工作:
document.getElementById("btn").value="harry";
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", url, false);
xmlhttp.send(null);
document.getElementById("btn").value="joy";
Run Code Online (Sandbox Code Playgroud)
默认值btn是joy.当我运行它时,值btn不会改变.所有其他的事情都很好.
我希望在ajax请求运行时看到值变为"harry".
为什么价值不变?怎么解决?
HTML代码:
<input id="btn" type="button" value="joy" onclick="change(id)" />
Run Code Online (Sandbox Code Playgroud)
id的默认值是joy.当我运行它时,id的值不会改变.所有其他的事情都很好.
代码的最终结果是value将元素的属性设置id为"joy".你暂时将它改为"哈利",但几乎立即将它改回"欢乐".
如果您希望在同步ajax请求运行时将值更改为"harry",则可能会感到失望.同步ajax请求完全锁定大多数浏览器的UI,防止在请求完成之前显示您所做的任何更改 - 当然,在您的情况下,当发生这种情况时,您将值更改回"joy",所以. ..
如果您想在请求运行时看到"harry",请将其设为异步:
document.getElementById("id").value="harry";
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = handleReadyStateChange;
xmlhttp.send(null);
function handleReadyStateChange() {
if (xmlhttp.readyState == 4) {
// Complete
document.getElementById("id").value="joy";
}
}
Run Code Online (Sandbox Code Playgroud)
实例:
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |