2012-08-29 2 views
0

에서 변경 이벤트를 발사 내가 가진 : 자바 스크립트

<input name="X"> 

와 자바 스크립트

:

$('input').on('change','[name=X]',function() { 
     $('body').append('on change fired!'); 
    } 
); 
$('input[name=X]').change(function() { 
    $('body').append('change fired!'); 
}); 
$(input[name='X']).val('test'); 

하지만 내 문제가 아니 변경 이벤트가 발생됩니다 있다는 것입니다.

+3

당신이'$ 내에서 코드를 넣어 가지고 (문서) .ready'? – undefined

+0

/body 바로 위에 html의 끝에 있습니다. –

+2

코드에 구문 오류가 있습니다. 입력 선택기의 따옴표가 누락되었습니다. – undefined

답변

1

는의 값을 변경 input 요소는 프로그래밍 방식으로 어떤 이벤트도 발생시키지 않습니다. 또한, 입력 셀렉터 주변 누락 된 따옴표를 고정 : 또는 당신은

$('input[name=X]').val('test').change(); 

편집

는 아래처럼 .val.change를 호출 할 수 있습니다.

DEMO :http://jsfiddle.net/G6n4h/1/

+0

당신의 바이올린은 또한 저의 다른 문법 문제를 도와주었습니다. 감사! –

1

당신이하려는 경우 당신이 준비 블록

jsFiddle

$(function(){ 
    $('input').on('change','[name=X]',function() { 
     $('body').append('on change fired!'); 
    }); 
    $('input[name=X]').change(function() { 
     $('body').append('change fired!'); 
    }); 
    $(input[name='X']).val('test'); 
}); 

을 사용하고 있는지 확인은 단순히 트리거 프로그래밍되는 :

$('input[name=X]').change(); // trigger change event 
+0

오, 나는 그것이 자동적 일 것이라고 생각했다. –

+0

아니요, 변경 이벤트를 트리거하지 않고 변경을위한 핸들러를 작성 중입니다. – Gabe

+0

하지만 값을 변경하면 자동으로 변경 이벤트가 트리거 될 것이라고 생각했습니다. –

4

당신은 당신의 선택 따옴표 누락, 플러스 어떻게 트리거를 추가하는 방법에 대한입니까?

$("input[name='X']").val("test").trigger("change"); 

fiddle

+0

따옴표가 필요하지 않습니다. – Gabe

+0

아, 트리거 ... –

+0

@ 가베 (Gabe) 어떻게 선택기와 변수를 구별 할 수 있습니까? 나는 모든 jquery 선택자는 그들 주위에 따옴표를 요구한다고 생각했다! – hsalama