Javascript AJAX结果不符合DOM
我有一个成功的AJAX请求和结果。结果是简单的文本,我希望将其放入DOM中的表行中。代码如下:Javascript AJAX结果不符合DOM,javascript,ajax,dom,Javascript,Ajax,Dom,我有一个成功的AJAX请求和结果。结果是简单的文本,我希望将其放入DOM中的表行中。代码如下: xhr.onreadystatechange = function(event) { if (xhr.readyState === 4 && xhr.status === 200) { var results = xhr.responseText; var col = document.getElementById("tr_concept_0_1_32"
xhr.onreadystatechange = function(event) {
if (xhr.readyState === 4 && xhr.status === 200) {
var results = xhr.responseText;
var col = document.getElementById("tr_concept_0_1_32").getElementsByClassName("col_1")[0];
col.innerHTML = results;
}
else {
console.log(event);
alert("something went wrong!: " + event);
}
};
当我返回col.innerHTML=results时代码>我可以看到DOM正在被修改,但它很快就会恢复到以前的值
我是AJAX新手,所以我不太清楚为什么“新值”不适用于DOM。
有什么建议吗
更多代码:
更新按钮
form.form-search(id='searchForm')
fieldset
.input-append
input.input-xxlarge.search-query#search(type='text', placeholder='Search', name='q')
button.btn.submit(onclick='getParams(); return false;') Search
上面是正在执行此工作的代码。用户单击表单的按钮
。这可能是问题所在吗?我没有从这一头处理正确的事情
更新按钮
上述代码在Chrome中运行良好,但在Firefox中不起作用。
在Firefox中,post返回success
,但不会触发onreadystatechange
。
有什么建议吗?我认为按钮正在发送AJAX、和提交表单……因此“重新加载”页面-因此您会看到“重置”值
如果您的按钮只打算提交AJAX,请将其type
属性更改为“button”,或者使用onclick='getParams();返回false;'代码>用于其onclick
处理程序
还有其他方法可以做到这一点,但在我的建议中,使用returnfalse代码>阻止提交按钮的默认行为-提交。但是因为它在getParams()之后
,getParams
仍然被调用,并执行您需要的操作—AJAX
如果将type
属性更改为“button”,它甚至不会有提交行为,因此不会出现此问题。不要在onreadystatechange
方法中使用return
。你这么做有什么原因吗?没有。。。我想这就是我的习惯吧。刚把它取下来。同样的问题。你的页面上还运行着什么代码?发布的代码段中没有任何内容会将其还原。您是否碰巧同时执行了多个AJAX请求?或者您正在测试的只是1?我认为按钮正在发送AJAX,并提交表单…因此“重新加载”页面-您会看到值重置。如果您的按钮只打算提交AJAX,请将其type
属性更改为“button”,或者使用onclick='getParams();返回false;'代码>用于其onclick
处理程序。