복붙노트

[JQUERY] jQuery $ ( "# RadioButton"). 변경 중에 발사되지 않음 (...)

JQUERY

jQuery $ ( "# RadioButton"). 변경 중에 발사되지 않음 (...)

해결법


  1. 1.변경 () 함수가 선택 해제 할 때 라디오 버튼을 확인할 때만 호출됩니다. 내가 사용한 솔루션은 모든 라디오 버튼에 변경 이벤트를 바인딩하는 것입니다.

    변경 () 함수가 선택 해제 할 때 라디오 버튼을 확인할 때만 호출됩니다. 내가 사용한 솔루션은 모든 라디오 버튼에 변경 이벤트를 바인딩하는 것입니다.

    $("#r1, #r2, #r3").change(function () {
    

    또는 모든 라디오 버튼을 같은 이름으로 줄 수 있습니다.

    $("input[name=someRadioGroup]:radio").change(function () {
    

    여기에 일하는 JSFiddle 예제가 있습니다 (Chris Porter의 코멘트에서 업데이트 됨).

    @ Ray의 코멘트 당 이름을 사용하여 사용하지 않아야합니다. 그들 안에. 이러한 이름은 jQuery 1.7.2에서 작동하지만 다른 버전에서는 작동하지 않습니다 (JSFiddle 예제.).


  2. 2.

    <input id='r1' type='radio' class='rg' name="asdf"/>
    <input id='r2' type='radio' class='rg' name="asdf"/>
    <input id='r3' type='radio' class='rg' name="asdf"/>
    <input id='r4' type='radio' class='rg' name="asdf"/><br/>
    <input type='text' id='r1edit'/>                  
    

    jquery 부분

    $(".rg").change(function () {
    
    if ($("#r1").attr("checked")) {
                $('#r1edit:input').removeAttr('disabled');
            }
            else {
                $('#r1edit:input').attr('disabled', 'disabled');
            }
                        });
    

    여기 데모가 있습니다


  3. 3.이름으로 한 번에 모든 라디오 버튼에 바인딩 할 수 있습니다.

    이름으로 한 번에 모든 라디오 버튼에 바인딩 할 수 있습니다.

    $('input[name=someRadioGroup]:radio').change(...);
    

    여기서 작업 예제 : http://jsfiddle.net/ey4fa/


  4. 4.이것은 일반적으로 나를 위해 일합니다.

    이것은 일반적으로 나를 위해 일합니다.

    if ($ ( "# r1"). ( ": 확인")) {}


  5. 5.내 문제는 비슷했고 이것은 나를 위해 일했습니다.

    내 문제는 비슷했고 이것은 나를 위해 일했습니다.

    $('body').on('change', '.radioClassNameHere', function() { ...
    

  6. 6.이 라디오 버튼이 ID 라디오 버튼이있는 DIV 안에 있고 라디오 버튼이 같은 이름 (예 : 일반 이름)이있는 DIV 안에 있다고 가정 해 봅시다.

    이 라디오 버튼이 ID 라디오 버튼이있는 DIV 안에 있고 라디오 버튼이 같은 이름 (예 : 일반 이름)이있는 DIV 안에 있다고 가정 해 봅시다.

    $('#radioButtons').on('change', 'input[name=commonName]:radio', function (e) {
        console.log('You have changed the selected radio button!');
    });
    

  7. 7.선택 취소에 해결되지 않는 변경 이벤트가 원하는 동작입니다. 단일 라디오 단추가 아닌 전체 라디오 그룹을 통해 선택기를 실행해야합니다. 그리고 라디오 그룹에는 동일한 이름이 있어야합니다 (다른 값 포함).

    선택 취소에 해결되지 않는 변경 이벤트가 원하는 동작입니다. 단일 라디오 단추가 아닌 전체 라디오 그룹을 통해 선택기를 실행해야합니다. 그리고 라디오 그룹에는 동일한 이름이 있어야합니다 (다른 값 포함).

    다음 코드를 고려하십시오.

    $('input[name="job[video_need]"]').on('change', function () {
        var value;
        if ($(this).val() == 'none') {
            value = 'hide';
        } else {
            value = 'show';
        }
        $('#video-script-collapse').collapse(value);
    });
    

    나는 특정 라디오 버튼을 선택할 때 입력 상자를 표시하는 것과 동일한 유스 케이스를 사용합니다. 이벤트가 탈박에서 발사 된 경우 매번 2 개의 사건을 얻을 것입니다.


  8. 8.여기에도 같은 문제, 이것은 잘 작동했습니다 :

    여기에도 같은 문제, 이것은 잘 작동했습니다 :

    $('input[name="someRadioGroup"]').change(function() {
        $('#r1edit:input').prop('disabled', !$("#r1").is(':checked'));
    });
    

  9. 9.Ajax와 함께 일을 위해 :

    Ajax와 함께 일을 위해 :

    HTML :

    <div id='anID'>
     <form name="nameOfForm">
                <p><b>Your headline</b></p>
                <input type='radio' name='nameOfRadio' value='seed' 
                 <?php if ($interviewStage == 'seed') {echo" checked ";}?> 
                onchange='funcInterviewStage()'><label>Your label</label><br>
     </form>
    </div>
    

    자바 스크립트 :

     function funcInterviewStage() {
    
                    var dis = document.nameOfForm.nameOfRadio.value;
    
                    //Auswahltafel anzeigen
                      if (dis == "") {
                          document.getElementById("anID").innerHTML = "";
                          return;
                      } else { 
                          if (window.XMLHttpRequest) {
                              // code for IE7+, Firefox, Chrome, Opera, Safari
                              xmlhttp = new XMLHttpRequest();
                          } else {
                              // code for IE6, IE5
                              xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                          }
                          xmlhttp.onreadystatechange = function() {
                              if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                                  document.getElementById("anID").innerHTML = xmlhttp.responseText;
                              }
                          }
                          xmlhttp.open("GET","/includes/[name].php?id="+dis,true);
                          xmlhttp.send();
                      }
                  }  
    

    및 PHP :

    //// Get Value
    $id = mysqli_real_escape_string($db, $_GET['id']);
    
    //// Insert to database
    $insert = mysqli_query($db, "UPDATE [TABLE] SET [column] = '$id' WHERE [...]");
    
    //// Show radio buttons again
    $mysqliAbfrage = mysqli_query($db, "SELECT [column] FROM [Table] WHERE [...]");
                      while ($row = mysqli_fetch_object($mysqliAbfrage)) {
                        ...
                      }
                      echo" 
                      <form name='nameOfForm'>
                          <p><b>Your headline</b></p>
                          <input type='radio' name='nameOfRadio' value='seed'"; if ($interviewStage == 'seed') {echo" checked ";} echo" onchange='funcInterviewStage()'><label>Yourr Label</label><br>
                          <input type='radio' name='nameOfRadio' value='startup'"; if ($interviewStage == 'startup') {echo" checked ";} echo" onchange='funcInterviewStage()'><label>Your label</label><br>
    
                      </form> ";
    
  10. from https://stackoverflow.com/questions/5176803/jquery-radiobutton-change-not-firing-during-de-selection by cc-by-sa and MIT license