Ответ 1
$("#checkboxID").on("click", function (e) {
var checkbox = $(this);
if (checkbox.is(":checked")) {
// do the confirmation thing here
e.preventDefault();
return false;
}
});
Я использую флажок, и я хочу, чтобы люди могли его проверить или снять.
Однако, когда они снижают этот флажок, я использую всплывающее окно jQueryUI для подтверждения того, что они действительно хотят это сделать. Таким образом, они могут нажать OK или Cancel, и я хочу, чтобы мой флажок не был отмечен, только если они нажимают OK.
Вот почему я хотел бы убрать событие uncheck, чтобы предотвратить визуальный контроль флажка, и снимите его сам программно, если пользователь нажимает на OK.
Как я могу это сделать?
PS: Я знаю, что я мог бы повторно проверить его после того, как пользователь нажмет на Cancel, но это вызовет событие check
, которое я не хочу.
$("#checkboxID").on("click", function (e) {
var checkbox = $(this);
if (checkbox.is(":checked")) {
// do the confirmation thing here
e.preventDefault();
return false;
}
});
Что-то вроде:
$("#test").on('change', function() {
this.checked=!this.checked?!confirm('Really uncheck this one ?'):true;
});
$("#yourCheckBoxId").on('change',function(e){
e.preventDefault();
$("#yourPopDiv").popup();
});
preventDefault()
отключит поведение по умолчанию вашего input[type="checkbox"]
И на вашем всплывающем div
$("#ok").on('click',function(){
$("#yourCheckBoxId").attr("checked",true);
});
Чистое решение для CSS
Выберите флажок, например -
input[type="checkbox"] {
pointer-events: none;
}
Работы Довольно хорошо, и теперь вы можете переключить свой флажок на любой щелчок элемента по вашему выбору.
$("#checkboxID").click(function(e) {
var checkbox = $(this);
if (checkbox.is(":checked")) {
//check it
} else {
// prevent from being unchecked
this.checked=!this.checked;
}
});
Несложное решение...
Просто добавьте onclick = "return false;" в HTML.
Обратите внимание, что я добавил aria-disabled = "true", чтобы показать читателям экрана, что флажок снят.
Кроме того, чистое решение CSS не будет работать с переключением на флажок и проверкой его таким образом.
<label><input type="checkbox" checked="checked" aria-disabled="true" onclick="return false;">Try clicking me</label>
Как насчет использования отключенного свойства HTML?
<input type="checkbox" name="my_name" value="my_value" disabled> My value<br>
Ссылка на сайт:
https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Property/disabled