我正在使用複選框在註冊表單上切換某些多列表的已啓用和已禁用狀態。該複選框標有該類別,並且多列表包含屬於該類別的項目。jQuery - 未選中複選框
我正在使用jQuery 1.7.2。
$('#sch_cat_hockeyschools').toggle(function(ev) {
ev.stopPropagation();
$("#type_select_hockeyschools").prop("disabled", false);
$("#type_select_hockeyschools").removeProp("disabled", "disabled");
$("#sch_cat_hockeyschools").prop("checked", true);
$("#sch_cat_hockeyschools").prop("checked", "checked");
}, function(ev) {
ev.stopPropagation();
$("#type_select_hockeyschools option:selected").removeAttr("selected");
$("#type_select_hockeyschools").prop("disabled", true);
$("#type_select_hockeyschools").prop("disabled", "disabled");
$("#sch_cat_hockeyschools").prop("checked", false);
$("#sch_cat_hockeyschools").removeProp("checked");
});
樣品相應的複選框HTML的:
<input class="catmark" type="checkbox" name="sch_categories[]" id="sch_cat_hockeyschools" value="1" />General Hockey Schools
<input class="catmark" type="checkbox" name="sch_categories[]" id="sch_cat_springhockey" value="2" />Spring Hockey
的問題是,在當點擊複選框,複選框不會變得打勾或檢查;它立即返回到未檢查狀態,我認爲stopPropagation()
函數將有所幫助。顯然不是。多列表按預期啓用和禁用,但複選框不勾選。
此問題的結果是,當提交表單時,包含所選類別的數組爲空;因此,由於至少有一個檢查的類別是表單中的必填字段,處理該表單的PHP腳本會拋出我的一個錯誤,該錯誤告訴我必填字段留空。
有關如何確保複選框實際上已被檢查並通過擴展將POSTS實際數據添加到處理腳本的任何想法?
謝謝你們。
爲什麼不使用控制複選框的默認瀏覽器的行爲? – TNC