checkbox未選中狀態不傳遞value的解決辦法


  <input type="checkbox" name="IsYellow" value="1" />

  做了一列name=IsYellow的checkbox,要求是保持整個序列的完整提交。後來發現checkbox 如果沒有checked(選中狀態),就不傳遞value值。也就是說做了10個checkbox,選中n個,那麼傳遞value值的數組長度就是n。

  爲了保持傳遞數據的完整性,有人說爲每個checkbox配備一個hidden類型的表單對象來存放數據。這個方法可行但是代碼量太大。尤其是當你希望這系列checkbox的name相同時,你就必須爲每個checkbox增加id屬性來和hidden類型對象對接。本人採用了另外一個方法,如下。
  
  //驗證表單正確性

  function checkForm()
  {
       var t1 = document.getElementById("enterPenal").getElementsByTagName("input");
       for(i=0;i<t1.length;i++)
       {
           if(t1[i].type == "checkbox")
           {
               if(!(t1[i].checked))
               {
                   t1[i].checked = true;
                   t1[i].value = "0";
               }
           }
       }
       return true;

  }

 

  就是在表單提交之前,將checkbox序列全部checked(選中狀態),並將其value(值)設置爲0。紅色背景部分爲checkbox序列所在父對象,此舉爲了提高運算速度。

  經過此方法過濾後,checkbox序列被完整提交,原本被用戶選定的checkbox的value爲1,未被選定的value爲0。

  【Oneso.Cray 文】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章