각 답변에는 몇 가지 요점이 없으므로 여기 내 해결책이 있습니다.
$("#input").on("input", function(e) {
var input = $(this);
var val = input.val();
if (input.data("lastval") != val) {
input.data("lastval", val);
//your change action goes here
console.log(val);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="input">
<p>Try to drag the letters and copy paste</p>
Input Event
에 화재 키보드 입력, 마우스 드래그 , 자동 채우기 및 복사 - 붙여 넣기 크롬과 파이어 폭스에서 테스트. 이전 값을 확인하면 실제 변경 사항을 감지하여 동일한 것을 붙여 넣거나 동일한 문자 등을 입력 할 때 발생하지 않습니다.
실례 : http://jsfiddle.net/g6pcp/473/
최신 정보:
change function
사용자가 입력을 마치고 변경 작업을 여러 번 실행하지 못하게 할 때만 실행 하려면 다음을 시도하십시오.
var timerid;
$("#input").on("input", function(e) {
var value = $(this).val();
if ($(this).data("lastval") != value) {
$(this).data("lastval", value);
clearTimeout(timerid);
timerid = setTimeout(function() {
//your change action goes here
console.log(value);
}, 500);
};
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="input">
사용자가 입력을 시작하면 (예 : "foobar")이 코드는 change action
모든 문자 사용자 유형에 대해 실행을 방지 하고 사용자가 입력을 중지 할 때만 실행됩니다. 이는 입력을 서버로 보낼 때 특히 유용합니다 (예 : 검색 입력). 웨이 서버는 않는 단 하나의 검색 foobar
이 아닌 육에 대한 검색 f
후와 fo
후 foo
와 foob
등등을.