js编程技巧

来源:互联网 发布:淘宝管控记录怎么销除 编辑:程序博客网 时间:2024/05/21 18:28

1.检查表单数据是否改变

有的时候,需要检查用户是否修改了一个表单中的内容,则可以使用下面的技巧,其中如果修改了表单的内容则返回true,没修改表单的内容则返回false。代码如下:
function formIsDirty(form) {   for (var i = 0; i < form.elements.length; i++) {     var element = form.elements[i];     var type = element.type;     if (type == "checkbox" || type == "radio") {       if (element.checked != element.defaultChecked) {         return true;       }     }     else if (type == "hidden" || type == "password" ||              type == "text" || type == "textarea") {       if (element.value != element.defaultValue) {         return true;       }     }     else if (type == "select-one" || type == "select-multiple") {       for (var j = 0; j < element.options.length; j++) {         if (element.options[j].selected !=             element.options[j].defaultSelected) {           return true;         }       }     }   }   return false; } window.onbeforeunload = function(e) {   e = e || window.event;     if (formIsDirty(document.forms["someForm"])) {     // IE 和 Firefox     if (e) {       e.returnValue = "You have unsaved changes.";     }     // Safari浏览器     return "You have unsaved changes.";   } }; 

2.数组去重
利用对象键不可重复对数组去重。代码如下:
function removeDuplicates(arr) {     var temp = {};     for (var i = 0; i < arr.length; i++)         temp[arr[i]] = true;       var r = [];     for (var k in temp)         r.push(k);     return r; }   //用法 var fruits = ['apple', 'orange', 'peach', 'apple', 'strawberry', 'orange']; var uniquefruits = removeDuplicates(fruits); //输出的 uniquefruits ['apple', 'orange', 'peach', 'strawberry']; 



原创粉丝点击