比较文档元素值的更改

时间:2010-01-14 05:43:46

标签: javascript

我需要检查在使用Javascript进行特定操作后是否更改了文档元素值。

我的要求是:

  • 更改特定日期元素后,文档元素包含默认值。
  • 有一些Ajax操作文档元素值的更改。

这将返回所有文档元素,然后我将它存储到数组

document.body.getElementsByTagName('*');

我想知道在使用java脚本

请求后哪些元素值发生了变化

2 个答案:

答案 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在执行前返回一个值。