分類  >  Web前端 >

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

tags:    時間:2013-12-09 23:14:55
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。

推薦閱讀文章

Bookmark the permalink ,來源:互聯網