2016-10-12 6 views
0

모달을 사용하여 값이 채워지는 입력 필드가 있습니다. 버튼을 클릭하면 모달이 나타나고 거기에서 무엇인가를 선택할 것이고 입력 필드가 채워집니다.입력 필드의 값이 변경되는지 확인하십시오.

이제 내 문제는 입력 필드의 값이 변경 될 때마다 이벤트를 트리거하고 싶다는 것입니다. 벌써 .change와 .blur를 사용해 보았습니다 만, 방아쇠는 방아쇠되지 않습니다. 이것이 내가 시도 전부입니다

:

$('#myTextbox').on('input', function() { 
    alert("test"); 
}); 

$('#myTextbox').on('change', function() { 
    alert("test"); 
}); 

$('#myTextbox').on('blur', function() { 
    alert("test"); 
}); 
+1

그래서 어떻게 입력 값을 변경합니까 ??? 코드를 사용하여 설정하는 경우 이벤트 수동으로 트리거해야합니다. –

+0

@ A.Wolff 이벤트로 수동으로 무엇을 의미합니까? 죄송합니다. 처음으로이 용어를 들으니 – hungrykoala

+2

: $ ('# myTextbox') .Val ('something'). trigger ('input');' 그러나 문제가되는 최소한의 샘플 복제 문제를 제공했다면 문제는 이미 해결되었을 것입니다. 이것은 최소한 –

답변

2

사용 event delegation

당신의 질문은 당신이 입력 필드가 동적으로 생성되는 것을 말한다. 페이지가 준비되면 DOM에 없었습니다.

$('body').on('blur', '#myTextbox', function() { 
    alert("test"); 
}); 

참고로 change도 사용할 수 있습니다. 당신이 당신의 텍스트 상자까지 setTimeout을 사용할 수 있습니다

편집

하나의 솔루션은 값으로 채워집니다.

또는

당신은 그 이유입니다, DOMAttrModified

$('body').on('DOMAttrModified propertychange paste', '#myTextbox', function() { 
    alert("test"); 
}); 

Reference

+1

입력 변경시 'blue'이벤트가 실행되지 않았습니다. 'change' 이벤트를 사용해야합니다. – Mohammad

+1

OP의 문제라고 생각하지 않습니다. 그는 모달 입력에서 프로그래밍 방식으로 입력 값을 변경했을 것입니다. –

+0

당신을 혼란스럽게해서 죄송합니다. 값은 자체 필드가 ​​아닌 js를 사용하여 추가되었습니다. – hungrykoala

1
$(document).ready(function() { 
    $('#myTextbox').on('blur', function() { 
     alert("test"); 
    }); 
}); 

OR 

$(document).ready(function() { 
    $('#myTextbox').on('change', function() { 
     alert("test"); 
    }); 
}); 
+0

이미 문서 준비 상태이며 아직 트리거되지 않습니다. 고맙습니다 – hungrykoala

0

와 같이 사용해보십시오, 당신의 input 필드가 런타임에 채우고 수 있습니다 시도 할 수 있습니다 이벤트가 실행되지 않습니다.

.on() 방법으로 모든 이벤트를 바인딩 할 수 있습니다. 시간을 낭비 할 필요가 없습니다.

관련 문제