我想最简单的办法就是给每个input都搭配一个hidden的input来记录原始的value这样就可以比较了

解决方案 »

  1.   

    form太多,对应的值也很多,这样太麻烦了。
      

  2.   

    <script>
    function check(){
    if(document.myform.a.value==a){
    alert("值没改变");
    return false;
    }
    return true;
    }
    </script>
    <body onload="a=document.myform.a.value;">
    <form name="myform" method="post" action="a.php" onsubmit=return(check())>
    <input type=text name="a" value="5">
    <input type=submit>
    </form>
      

  3.   

    用hidden吧
    把各个input用ID0,ID1……IDn来标认识
    比较的时候用一个循环实现
      

  4.   

    可以在页面初始化时,对form进行备份,如下:<body onload="tempForm = document.myForm.cloneNode(true);">
    <form name="myForm" method="post" action="a.php">
    <input type=text name="a" value="5">
    <input type=text name="b" value="6">
    <input type=text name="c" value="8">
    <input type=text name="d" value="34">
    <input type=button value=check onclick="check(document.myForm)">
    <input type=reset>
    </form>
    <script language="javascript">
    function check(oForm)
    {    
        if(tempForm.innerHTML == oForm.innerHTML)
            alert("form内容没有改变");
        else
            alert("form内容改变");
    }
    </script>
    <body>
      

  5.   

    text控件本身就有defaultValue属性,你对比它的value和defaultValue是否一样,不是更简单?
      

  6.   

    楼上的怎么讲?defaultValue属性?
      

  7.   

    defaultValue NN 2 IE 3 DOM 1          Read-only 
     
    The default text for the text input element, as established by the VALUE attribute. 
     
    Examplevar txtObj = document.forms[0].myText
    if (txtObj.value != txtObj.defaultValue ) {
        ...
    }
     
     
    Value
    Any string value.  
     
    Default None. 
     
    来自Dreamweaver中的参考
      

  8.   

    <form name="myform" method="post" action="a.php">
    <input type=text name="a" value="5" >
    <input type=text name="b" value="6">
    <input type=text name="c" value="8">
    <input type=text name="d" value="34">
    </form><input type="button" onclick="Check()" value="Check"/><script>
    var inputs = document.getElementsByTagName("INPUT");
    //初始,遍历所有的input
    for(var i=0;i<inputs.length;i++)
    {
        //取得输入框
        if(inputs[i].type=="text")
        {
            //给输入框加入属性init,初始值. 值为value
            inputs[i].setAttribute("init",inputs[i].value);
        }
    }function Check()
    {
        for(var i=0;i<inputs.length;i++)
        {
            //判断属性init是否和value相等,相等提交出错.
            if(inputs[i].type=="text" && inputs[i].value==inputs[i].init)
            {
                alert(inputs[i].name + "出错.")
            }
        }
    }
    </script>
      

  9.   

    刚翻了一下资料.defaultValue
    Sets or retrieves the initial contents of the object. 看来我的设置init属性是多此一举啦..<form name="myform" method="post" action="a.php">
    <input type=text name="a" value="5" >
    <input type=text name="b" value="6">
    <input type=text name="c" value="8">
    <input type=text name="d" value="34">
    </form><input type="button" onclick="Check()" value="Check"/><script>
    var inputs = document.getElementsByTagName("INPUT");
    function Check()
    {
        for(var i=0;i<inputs.length;i++)
        {
            //判断属性init是否和value相等,相等提交出错.
            if(inputs[i].type=="text" && inputs[i].value==inputs[i].defaultValue)
            {
                alert(inputs[i].name + "出错.")
            }
        }
    }
    </script>
      

  10.   

    早上来,我找了一下,以前写过一个~.. 
    用法:alert(isChnageForm(0));  //是否改变过第一个form中的值~
    /*
       @是否改变Form内的input=text的状态.
    */
    function isChangeForm(f){
       var e = document.forms[f].elements;
       var isChange = false;
       for(var i=0; i<e.length; i++)
          if (e[i].type=="text" && e[i].type)
         if (e[i].value!="" && e[i].defaultValue!=e[i].value) {
        isChange = true;
    break;
     }   
       return isChange;
    }