簡體   English   中英

盡管使用了 preventDefault,復選框仍然沒有被選中

[英]Checkbox still gets unchecked despite using preventDefault

getInfo()返回false ,會拋出窗口alert ,但復選框仍會更改; 如果未選中則選中,反之亦然。

有什么幫助嗎?

 $("input[type='checkbox']").click(function(event) { var someCondition = getInfo(); if (someCondition === false) { event.preventDefault(); window.alert("Nope"); return false; } }); function getInfo() { return false; // just for testing }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="checkbox" />

如果我正確理解您需要什么,您可以使用它

  $("input[type='checkbox']").click(function (event) {
         var someCondition = getInfo();
         if(someCondition === false) {
            var checkVal = $("input[type='checkbox']").val();
             $("input[type='checkbox']").attr( "checked", !checkVal );
             window.alert("Nope");

         }
     });

或者,如果您希望在條件為假時取消選中復選框

  $("input[type='checkbox']").click(function (event) {
         var someCondition = getInfo();
         if(someCondition === false) {
             $("input[type='checkbox']").attr( "checked", false);
             window.alert("Nope");

         }
     });

希望能幫助到你

您的代碼似乎適用於小提琴,但其他一些插件可能會干擾該行為。 不過,請嘗試以下操作,看看是否可以解決問題

 $("input[type='checkbox']").on('click',function (event) {
        var someCondition = getInfo();
        var checkBox = $(this);
        if(someCondition === false) { 
            event.preventDefault();
            checkBox.prop('checked', !checkBox.prop('checked'))
            window.alert("Nope");
            return false;
        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM