25

チェックボックスを使用していますが、チェックボックスをオン/オフにできるようにしたいと考えています。ただし、チェックを外すと、jQueryUIモーダルポップアップを使用して、本当にやりたいことを確認しています。したがって、OKまたはをクリックすることができます。Cancelクリックした場合にのみチェックボックスをオフにしますOK
そのため、チェックボックスが視覚的にオフにならないようにチェック解除イベントをキャッチし、ユーザーがクリックした場合はプログラムでチェックボックスをオフにしますOK

どうすればそれができますか?

PS:ユーザーがクリックした後で再確認できることはわかっていますが、それでは不要なイベントCancelがトリガーされます。check

4

6 に答える 6

32
$("#checkboxID").on("click", function (e) {
    var checkbox = $(this);
    if (checkbox.is(":checked")) {
        // do the confirmation thing here
        e.preventDefault();
        return false;
    }
});
于 2012-08-27T08:56:41.357 に答える
13

何かのようなもの:

$("#test").on('change', function() {
    this.checked=!this.checked?!confirm('Really uncheck this one ?'):true;
});
​

フィドル

于 2012-08-27T09:07:49.893 に答える
11

純粋なCSSソリューション

次のようなチェックボックスを選択します-

input[type="checkbox"] {
    pointer-events: none;
}

かなりうまく機能し、選択した要素のクリックでチェックボックスを切り替えることができるようになりました。

于 2017-11-27T04:09:27.267 に答える
2
   $("#checkboxID").click(function(e) { 
      var checkbox = $(this);
      if (checkbox.is(":checked")) {
       //check it 
      } else {
       // prevent from being unchecked
        this.checked=!this.checked;
      }
   });
于 2018-07-25T17:17:38.260 に答える
2

HTMLのdisabledプロパティを使用するのはどうですか?

<input type="checkbox" name="my_name" value="my_value" disabled> My value<br>

リンク: https ://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled

于 2019-05-14T11:56:04.190 に答える
1
$("#yourCheckBoxId").on('change',function(e){
    e.preventDefault();
    $("#yourPopDiv").popup();
});

preventDefault()のデフォルトの動作を無効にしますinput[type="checkbox"]

そしてあなたのポップアップdivで

$("#ok").on('click',function(){
    $("#yourCheckBoxId").attr("checked",true);
});
于 2012-08-27T08:59:27.833 に答える