JQuery флажок изменить и щелкнуть событие - PullRequest
512 голосов
/ 11 августа 2011

$(document).ready(function() {
  //set initial state.
  $('#textbox1').val($(this).is(':checked'));

  $('#checkbox1').change(function() {
    $('#textbox1').val($(this).is(':checked'));
  });

  $('#checkbox1').click(function() {
    if (!$(this).is(':checked')) {
      return confirm("Are you sure?");
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" id="checkbox1"/><br />
<input type="text" id="textbox1"/>

Здесь .change() обновляет значение текстового поля со статусом флажка. Я использую .click(), чтобы подтвердить действие по снятию отметки. Если пользователь выбирает «Отмена», флажок восстанавливается, но перед подтверждением срабатывает .change().

Это оставляет вещи в несовместимом состоянии, и текстовое поле говорит ложь, когда флажок установлен.

Как я могу справиться с отменой и сохранить значение текстового поля в соответствии с состоянием проверки?

Ответы [ 17 ]

5 голосов
/ 11 августа 2011

Попробуйте это

$('#checkbox1').click(function() {
        if (!this.checked) {
            var sure = confirm("Are you sure?");
            this.checked = sure;
            $('#textbox1').val(sure.toString());
        }
    });
4 голосов
/ 06 ноября 2014
$('#checkbox1').click(function() {
    if($(this).is(":checked")) {
        var returnVal = confirm("Are you sure?");
        $(this).attr("checked", returnVal);
    }
    $('#textbox1').val($(this).is(':checked')); 
});


<div id="check">
    <input type="checkbox" id="checkbox1" />
    <input type="text" id="textbox1" />
</div>
4 голосов
/ 10 февраля 2012
// this works on all browsers.

$(document).ready(function() {
    //set initial state.
    $('#textbox1').val($(this).is(':checked'));

    $('#checkbox1').change(function(e) {
        this.checked =  $(this).is(":checked") && !!confirm("Are you sure?");
        $('#textbox1').val(this.checked);
        return true;
    });
});
1 голос
/ 03 мая 2017

Я не уверен, почему все делают это так сложно. Это все, что я сделал.

if(!$(this).is(":checked")){ console.log("on"); }
1 голос
/ 01 декабря 2016

получить значение радиосвязи по имя

 $('input').on('className', function(event){
        console.log($(this).attr('name'));
        if($(this).attr('name') == "worker")
            {
                resetAll();                 
            }
    });
1 голос
/ 15 февраля 2013

просто используйте событие клика мой идентификатор флажка CheckAll

     $('#CheckAll').click(function () {

        if ($('#CheckAll').is(':checked') == true) {

             alert(";)");
      }
    }
0 голосов
/ 20 мая 2019

Поздний ответ, но вы также можете использовать on.("change")

$('#check').on('change', function() {
     var checked = this.checked
    $('span').html(checked.toString())
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" id="check" > <span>Check me!</span>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...