關於JQuery設置checkbox checked 的問題


近日做一個關於JQuery表單驗證,有一個比較奇葩的要求,即checkbox是為必填項,textbox不是必填的。

而checkbox與textbox又是相關的,填寫了textbox,則其上方的checkbox即相當於勾選。在使用中,用戶很容易只注意到textbox,忽視checkbox,而不勾選,造成驗證不通過。

所以想通過程序,在驗證之前先判斷textbox是否有值,如果有值,則自動勾選checkbox,再進行驗證。

最初的代碼如下:

if ($("#ZYAreaBC").val() != null) {
        if ($("#ZYAreaBC").val() != "") {
            $("#ChkSYBC").attr("checked", true);
        }
    }
    if ($("#ZYElseBC").val() != null) {
        if ($("#ZYElseBC").val() != "") {
            $("#ChkHBBC").attr("checked", true);
        }
    }

調試過程中,出現很奇怪的異常,該項不一定通過驗證,且checkbox的狀態一直是未選中的狀態。但是再調試過程中查看checkbox的值,是有值的。

本以為是JQuery無法驗證通過代碼設置的值,再谷歌不正常的情況下到處找資料,終於發現是checkbox設置值的問題,JQuery1.6之后,使用如下代碼設置

checkbox的的選中與否

$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);

參考如下帖子:http://stackoverflow.com/questions/426258/checking-a-checkbox-with-jquery

修改代碼,修改后調試正常通過

if ($("#ZYAreaBC").val() != null) {
        if ($("#ZYAreaBC").val() != "") {
            $("#ChkSYBC").prop('checked', true); ;
        }
    }
    if ($("#ZYElseBC").val() != null) {
        if ($("#ZYElseBC").val() != "") {
            $("#ChkHBBC").prop('checked', true); ;
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM