javascript - 안됨 - jQuery 체크 박스 변경 및 클릭 이벤트




체크 박스 클릭 안됨 (11)

Demo

mousedown 클릭 사용

$('#checkbox1').mousedown(function() {
    if (!$(this).is(':checked')) {
        this.checked = confirm("Are you sure?");
        $(this).trigger("change");
    }
});

나는 가지고있다

<input type="checkbox" id="checkbox1" /> <br />
<input type="text" id="textbox1" />

$(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?");
        }
    });
});

JSFIDDLE 링크

여기서 변경된 이벤트는 체크 박스 상태로 텍스트 상자 값을 업데이트합니다. 나는 click 이벤트를 사용하여 선택을 취소하는 동작을 확인합니다. 사용자가 취소를 선택하면 체크 표시가 복원되지만 변경 사항은 일치하지 않는 상태로 남겨두기 전에 실행됩니다 (체크 상자가 선택되면 텍스트 상자에 false가 표시됨). 취소를 처리하고 텍스트 상자 값을 수표 상태와 일관되게 유지하려면 어떻게해야합니까?


change 이벤트를 제거하고 대신 click 이벤트에서 텍스트 상자의 값을 변경합니다. 확인 결과를 반환하는 대신 var에 잡으십시오. 그것의 진실한 경우에, 가치를 바꾸십시오. 그런 다음 var를 반환합니다.


글쎄 .. 단지 두통 (과거의 한밤중)을 구하기 위해서 나는 다음과 같이 생각해 낼 수 있었다 :

$('#checkbox1').click(function() {
  if (!$(this).is(':checked')) {
    var ans = confirm("Are you sure?");
     $('#textbox1').val(ans);
  }
});

희망이 도움이된다.


글쎄 내 대답과 일치하는 답변을 볼 수 없으므로이 글을 올리겠다. JSFiddle 에서 테스트하고 요구하는 것을 수행합니다.이 접근법은 체크 박스와 연관된 레이블을 클릭 할 때 발생하는 추가 이점이 있습니다.

원문 답변 :

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

    $('#checkbox1').change(function() {
        if($(this).is(":checked")) {
            var returnVal = confirm("Are you sure?");
            $(this).attr("checked", returnVal);
        }
        $('#textbox1').val($(this).is(':checked'));        
    });
});

업데이트 된 답변 :

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

    $('#checkbox1').change(function() {
        if(this.checked) {
            var returnVal = confirm("Are you sure?");
            $(this).prop("checked", returnVal);
        }
        $('#textbox1').val(this.checked);        
    });
});

단순히 click 이벤트를 사용합니다. 내 체크 박스 ID는 CheckAll입니다.

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

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

             alert(";)");
      }
    }

여기있다.

HTML

<input id="ProductId_a183060c-1030-4037-ae57-0015be92da0e" type="checkbox" value="true">

자바 스크립트

<script>
    $(document).ready(function () {

      $('input[id^="ProductId_"]').click(function () {

        if ($(this).prop('checked')) {
           // do what you need here     
           alert("Checked");
        }
        else {
           // do what you need here         
           alert("Unchecked");
        }
      });

  });
</script>

이 시도

$('#checkbox1').click(function() {
        if (!this.checked) {
            var sure = confirm("Are you sure?");
            this.checked = sure;
            $('#textbox1').val(sure.toString());
        }
    });

확인란을 클릭하고 동일한 이벤트 루프에서 값을 확인하는 것이 문제입니다.

이 시도:

$('#checkbox1').click(function() {
    var self = this;
    setTimeout(function() {

        if (!self.checked) {
            var ans = confirm("Are you sure?");
            self.checked = ans;
            $('#textbox1').val(ans.toString());
        }
    }, 0);
});

데모 : http://jsfiddle.net/mrchief/JsUWv/6/


이름으로 라디오 값을 얻다.

 $('input').on('className', function(event){
        console.log($(this).attr('name'));
        if($(this).attr('name') == "worker")
            {
                resetAll();                 
            }
    });

$('#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>

// 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;
    });
});




event-handling