복붙노트

[JQUERY] 발 ()는하지 jQuery를 트리거의 변화 ()를하지 [중복]

JQUERY

발 ()는하지 jQuery를 트리거의 변화 ()를하지 [중복]

해결법


  1. 1.상기 입력에 사용자가 입력 한 후, 입력 포커스를 잃을 때의 onchange에만 화재.

    상기 입력에 사용자가 입력 한 후, 입력 포커스를 잃을 때의 onchange에만 화재.

    수동으로 값을 설정 한 후 사용하여 onchange를 이벤트를 호출 할 수 있습니다 :

    $("#mytext").change(); // someObject.onchange(); in standard JS
    

    다른 방법으로는 사용하여 이벤트를 트리거 할 수 있습니다 :

    $("#mytext").trigger("change");
    

  2. 2.redsquare의 우수한 제안에서,이 잘 작동 :

    redsquare의 우수한 제안에서,이 잘 작동 :

    $.fn.changeVal = function (v) {
        return this.val(v).trigger("change");
    }
    
    $("#my-input").changeVal("Tyrannosaurus Rex");
    

  3. 3.당신은 아주 쉽게 원래의 발 기능에 대한 프록시로 교체하여 트리거 변화에 발 기능을 대체 할 수 있습니다.

    당신은 아주 쉽게 원래의 발 기능에 대한 프록시로 교체하여 트리거 변화에 발 기능을 대체 할 수 있습니다.

    당신의 문서에이 코드 어딘가를 추가 (로드 jQuery를 한 후)

    (function($){
        var originalVal = $.fn.val;
        $.fn.val = function(){
            var result =originalVal.apply(this,arguments);
            if(arguments.length>0)
                $(this).change(); // OR with custom event $(this).trigger('value-changed');
            return result;
        };
    })(jQuery);
    

    동작하는 예제 : 여기

    (이 항상 트리거 변화가 발 (new_val)도라고합니다 값이 실제로 변경하지 않은 경우 있습니다.)

    당신이 값이 실제로 변경 만 트리거 변경하려는 경우,이 하나를 사용합니다 :

    //This will trigger "change" event when "val(new_val)" called 
    //with value different than the current one
    (function($){
        var originalVal = $.fn.val;
        $.fn.val = function(){
            var prev;
            if(arguments.length>0){
                prev = originalVal.apply(this,[]);
            }
            var result =originalVal.apply(this,arguments);
            if(arguments.length>0 && prev!=originalVal.apply(this,[]))
                $(this).change();  // OR with custom event $(this).trigger('value-changed')
            return result;
        };
    })(jQuery);
    

    그것을위한 라이브 예 : http://jsfiddle.net/5fSmx/1/


  4. 4.당신은 체인과 같은 방법이 필요합니다 :

    당신은 체인과 같은 방법이 필요합니다 :

    $('#input').val('test').change();
    

  5. 5.아니 수동으로 값을 설정 한 후 그것을 트리거해야 할 수도 있습니다 :

    아니 수동으로 값을 설정 한 후 그것을 트리거해야 할 수도 있습니다 :

    $('#mytext').change();
    

    또는:

    $('#mytext').trigger('change');
    

  6. 6.이벤트가 버블 링되지 않은 것 같습니다. 이 시도:

    이벤트가 버블 링되지 않은 것 같습니다. 이 시도:

    $("#mybutton").click(function(){
      var oldval=$("#mytext").val();
      $("#mytext").val('Changed by button');
      var newval=$("#mytext").val();
      if (newval != oldval) {
        $("#mytext").trigger('change');
      }
    });
    

    이게 도움이 되길 바란다.

    나는 이전 값을 저장하지 않고 그냥 평범한 구식 $ ( "#으로 myText"). 트리거 ( '변화')를 시도하고 .change 화재도 값은 변경되지 않은 경우. 나는 이전 값을 저장 ( "#으로 myText") $라는 이유입니다. 트리거 ( '변화')이 변경 경우에만 가능합니다.


  7. 7.2019년 2월 .addEventListener () 현재의 jQuery .trigger () 또는 .change ()와 작업이 현재 사용하지 않는, 당신은 크롬이나 파이어 폭스를 사용하여 아래를 테스트 할 수 있습니다.

    2019년 2월 .addEventListener () 현재의 jQuery .trigger () 또는 .change ()와 작업이 현재 사용하지 않는, 당신은 크롬이나 파이어 폭스를 사용하여 아래를 테스트 할 수 있습니다.

    txt.addEventListener ( "입력", 함수 () { CONSOLE.LOG은 ( '이라고하지?'); }) $ ( '#의 TXT') 발 ( '검사') 트리거 ( "입력")..; $ ( '#의 TXT') 트리거 ( '입력.'); $ ( '#의 TXT')의 변화 ().; <스크립트 SRC = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js">

    당신은 () 대신 .dispatchEvent를 사용해야합니다.

    txt.addEventListener ( "입력", 함수 () { 을 console.log ( '그것은 작동!'); }) $ ( '#의 TXT'). 발을 ( '예') txt.dispatchEvent (새 이벤트 ( '입력')); <스크립트 SRC = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js">


  8. 8.https://api.jquery.com/change/에서 :

    https://api.jquery.com/change/에서 :

    그 값이 변경 될 때 변경 이벤트 요소로 전송된다. 이 이벤트는 엘리먼트, <텍스트 영역> 박스와 <선택> 요소로 제한된다. 선택 박스, 체크 박스, 라디오 버튼의 경우, 이벤트는 사용자가 마우스로 선택을하게 만들지 만 요소가 포커스를 잃을 때까지 다른 요소 유형에 대한 이벤트가 지연됩니다 때 즉시 발생합니다.


  9. 9.대신 변경 이벤트를 체크, 입력 이벤트를 확인,이 오래된 스레드 알지만, 찾고 다른 사람을 위해, 위의 솔루션은 다음과 같은 좋은으로 어쩌면되지 않습니다.

    대신 변경 이벤트를 체크, 입력 이벤트를 확인,이 오래된 스레드 알지만, 찾고 다른 사람을 위해, 위의 솔루션은 다음과 같은 좋은으로 어쩌면되지 않습니다.

    $("#myInput").on("input", function() {
        // Print entered value in a div box
        $("#result").text($(this).val());
    });
    
  10. from https://stackoverflow.com/questions/3179385/val-doesnt-trigger-change-in-jquery by cc-by-sa and MIT license