• JavaScript验证表单元素是否被修改


    1. <form>  
    2.     <input type="text" value="defaultValue 1"/>    
    3.   
    4.     <input type="text" value="defaultValue 2"/>    
    5.   
    6.     <textarea >defaultValue 1</textarea>    
    7.   
    8.     <textarea >defaultValue 2</textarea>    
    9.   
    10.     <input type="radio" name="a" />test  
    11.     <input type="radio" name="a" checked="checked"/>defaultChecked    
    12.   
    13.     <input type="checkbox"  name="b"/>test  
    14.     <input type="checkbox"  name="b" checked="checked"/>defaultChecked  
    15.     <input type="checkbox"  name="b" checked="checked"/>defaultChecked    
    16.   
    17.   
    18.     <select>  
    19.         <option selected="selected">defaultSelected 1</option>  
    20.         <option>test</option>  
    21.         <option>test</option>  
    22.         <option>test</option>  
    23.     </select>    
    24.   
    25.   
    26.     <select multiple="multiple">  
    27.         <option>test</option>  
    28.         <option selected="selected">defaultSelected 1</option>  
    29.         <option selected="selected">defaultSelected 2</option>  
    30.         <option>test</option>  
    31.     </select>    
    32.   
    33.   
    34.     <input type="button" onclick="IsFormChanged()" value="submit"/>  
    35. </form>  
    36. <script>  
    37. function IsFormChanged() {  
    38.     var isChanged = false;  
    39.     var form = document.forms[0];  
    40.     for (var i = 0; i < form.elements.length; i++) {  
    41.         var element = form.elements[i];  
    42.         var type = element.type;  
    43.         if (type == "text" || type == "hidden" || type == "textarea" || type == "button") {  
    44.             if (element.value != element.defaultValue) {  
    45.                 isChanged = true;  
    46.                 break;  
    47.             }  
    48.         } else if (type == "radio" || type == "checkbox") {  
    49.             if (element.checked != element.defaultChecked) {  
    50.                 isChanged = true;  
    51.                 break;  
    52.             }  
    53.         } else if (type == "select-one"|| type == "select-multiple") {  
    54.             for (var j = 0; j < element.options.length; j++) {  
    55.                 if (element.options[j].selected != element.options[j].defaultSelected) {  
    56.                     isChanged = true;  
    57.                     break;  
    58.                 }  
    59.             }  
    60.         } else {   
    61.             //  etc...  
    62.         }       
    63.     }      
    64.     alert( isChanged?"你改变了表单的默认值.":"成功提交.");  
    65.     return isChanged;  
    66. }  
    67. </script>  

     有2点注意
    1,表单元素都有默认值属性,比如element.defaultValue , element.defaultChecked  ,element.options[j].defaultSelected

    2,select元素的type类型是:""select-one"或者"select-multiple",而不是"select"。

  • 相关阅读:
    第一章 数据库概论
    规范化
    qt mysql驱动问题解绝
    linux文件系统软链接硬链接
    linux命令总结
    shell应用技巧
    如何使滚动条保持在页面底部
    地图定位问题汇总
    webpack基本用法
    git异常操作解决办法合集
  • 原文地址:https://www.cnblogs.com/xffy1028/p/2344333.html
Copyright © 2020-2023  润新知