문제

내 페이지에 다음 jQuery 코드가 있습니다.

var isChanged = false;
$(document).ready(function()
{
    $('.change').change(function() {
        isChanged = true;
    });
});

사용에 연결된 텍스트 상자의 값을 수정하는 플러그인을 사용하고 있습니다.

target.val('xxxx');

HTML (ASP.NET)의 텍스트 상자는 다음과 같습니다.

<input name="ctl00$cphHolder1$rptFlex$ctl01$txtLeftRank"
  type="text"
  value="52°"
  id="ctl00_cphHolder1_rptFlex_ctl01_txtLeftRank"
  class="change atiselector" />

텍스트 상자의 값이 코드를 사용하여 변경되면 변경이 발생하지 않습니다. 텍스트 상자를 입력하면 변경이 발생합니다. 내가 무엇을 놓치고 있습니까?

도움이 되었습니까?

해결책

그것이 작동하는 방식입니다. "변경"이벤트를 트리거하려면 값 변경이 필요한 경우 다음과 같이 명시 적으로 할 수 있습니다.

$('input#whatever').val('hi').change();

다른 팁

$('.change').change() 이벤트를 해고 할 것입니다. 속성을 변경하는 것만으로도 이벤트가 시작되지는 않습니다.

에 따르면 DOM 레벨 2 이벤트 사양:

변경 이벤트는 컨트롤이 입력 초점을 잃고 초점을 얻은 후 그 값이 수정 될 때 발생합니다.

즉, 변경 이벤트는 사용자 상호 작용에 의해 변경시 실행되도록 설계되었음을 의미합니다. 프로그래밍 방식의 변경으로 인해이 이벤트가 해고되지는 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top