我需要检查在使用Javascript进行特定操作后是否更改了文档元素值。
我的要求是:
这将返回所有文档元素,然后我将它存储到数组
document.body.getElementsByTagName('*');
我想知道在使用java脚本
请求后哪些元素值发生了变化答案 0 :(得分:4)
我建议您在操作发生之前序列化元素和值,然后将序列化数据与流程后的实时元素进行比较。
序列化非常简单:
function serialize() {
var output = "";
for (var i = 0; i < document.myForm.elements.length; i++) {
name = document.myForm.elements[i].name;
value = document.myForm.elements[i].value;
output = output + name + "=" + value + "&";
}
alert(output);
}
答案 1 :(得分:0)
使用ajax,您可以使用GetXmlHttpObject()在javascript中进行两种类型的调用,即异步和同步调用。当您执行“打开”调用时,第三个参数将Sync设置为布尔值。即:
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var querystring_variables = create_request_string(theform);
var url= scriptPage + "?" + querystring_variables + "&time=" + timestamp;
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
True表示同步false表示异步。
基本上你的ajax调用应填充你网页上的div或文本框。如果您执行异步调用并执行调用以检查返回的值,则javascript将运行得太早,并且您的javascript调用读取的值将返回为空。
如果同步执行,读取值的javascript函数将等待ajax在执行前返回一个值。