jQuery textbox.val ( 'xxxx')이 불에 변화를 일으키지 않습니까?
문제
내 페이지에 다음 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 이벤트 사양:
변경 이벤트는 컨트롤이 입력 초점을 잃고 초점을 얻은 후 그 값이 수정 될 때 발생합니다.
즉, 변경 이벤트는 사용자 상호 작용에 의해 변경시 실행되도록 설계되었음을 의미합니다. 프로그래밍 방식의 변경으로 인해이 이벤트가 해고되지는 않습니다.
제휴하지 않습니다 StackOverflow