天天看點

表單的的預設值

通過JS改變複選框的值

j$(function(){
  document.getElementById(id).checked = true;
})      

通過JS改變下拉清單框的值

j$(function(){
          j$("#id").val("......"));
    })      

函數的主要目的是想知道form表單中的值有沒有被改變,原來的函數采用的是if…else/if結構,在這裡,我還是把代碼貼出來吧:

function IsFormChanged(name) {
       var isChanged = false;
//     var form = document.getElementById(name);
       var form = document.forms[name];
       for (var i = 0; i < form.elements.length; i++) {
              var element = form.elements[i];
              var type = element.type;
              if (type == "text" || type == "hidden" || type == "textarea" || type == "button") {
                     if (element.value != element.defaultValue) {
                            isChanged = true;
                            alert("1");
                            break;
                     }
              } else if (type == "radio" || type == "checkbox") {
                     if (element.checked != element.defaultChecked) {
                            isChanged = true;
                            alert("2");
                            break;
                     }
              } 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) {
                                   isChanged = true;
                                   alert("3");
                                   break;
                           }
                     }
              } else {
                     //etc...
              }     
       }   
       alert( isChanged?"你改變了表單的預設值":"表單的值沒有改變");
       return isChanged;
}      
var Form={
       IsFormChanged:function(id){
       /*IsFormChangedCase這個函數我本來是放在外面的,和IsFormChanged的級别是一樣的,
      但是現在隻有IsFormChanged這個函數使用這個,其原因是因為switch和for中都是用break的緣故,
      是以,我最終把這個函數作為IsFormChanged函數的一個變量來使用。
       */
              var IsFormChangedCase=function(element){
              var isChanged = false;
              switch(element.type){
                     case "text":
                     case "hidden":
                     case "textarea":
                     case "button":
                            if(element.value != element.defaultValue)
                                   isChanged= true;
                            break;
                     case "radio":
                     case "checkbox":
                            if(element.checked != element.defaultChecked)
                                   isChanged= true;
                            break;
                     case "select-one":
                     case "select-multiple":
                            for (var j = 0; j < element.options.length; j++){
                                   if(element.options[j].selected != element.options[j].defaultSelected){
                                         isChanged= true;
                                         break;
                                   }
                            }
                            break;
                     }
                     return isChanged;  
              };
              var str=false;
              var form = document.getElementById(id);
              for (var i = 0; i < form.elements.length; i++){
                     var element = form.elements[i];
                     if(IsFormChangedCase(element)){
                            str=true;
                            break;
                     }
              }
              return str;      
       }
}
//這個隻是測試函數
function test()
{
       var ret=Form.IsFormChanged("frm2");
       alert( ret?"你改變了表單的預設值":"表單的值沒有改變");
       return ret;
}