jQuery에서 입력 [유형 = 텍스트]의 값 변경 감지


159

특정 입력 상자의 값이 변경 될 때마다 함수를 실행하고 싶습니다. 그것은 거의 작동 $('input').keyup(function)하지만, 예를 들어, 상자에 텍스트를 붙여 넣을 때 아무 반응이 없습니다. $input.change(function)입력이 흐려질 때만 트리거되므로 텍스트 상자의 값이 변경 될 때마다 어떻게 즉시 알 수 있습니까?


2
그렇다면 왜 이벤트 keyuppaste이벤트를 바인딩하지 않습니까?
Ilia G

devcurry.com/2009/07/…- 잘라 내기 / 복사 / 붙여 넣기 이벤트 감지
BeRecursive

2
@ liho1eye paste는 내가 생각한 것 중 하나입니다. 모든 다른 들어오는 경로를 생각 해야하는 것보다 결정적인 변화를 듣고 싶습니다.
Jeriko

@Jeriko 이것은 값을 변경할 수있는 유일한 두 가지 방법입니다 (js 코드를 통한 명백한 업데이트 외에도).
Ilia G

Ctlr-X ( cut)도 캡처하려고합니다 .
Alexis Wilke

답변:


341

'바인딩'기능보다 'on'이 권장된다는 점을 기억하십시오. 항상 다음과 같은 이벤트 리스너를 사용하십시오.

$("#myTextBox").on("change paste keyup", function() {
   alert($(this).val()); 
});

paste그래? 먼저 우리가 무언가를 붙여 넣을 때만 작동한다고 생각했습니다 CTRL+V.
Black

3
@ NicolasS.Xu : 값을 직접 asignation 어떤 DOM 이벤트 트리거되지 않습니다
알레한드로 실바

console.log()대신 사용하면 더 좋을 것입니다 alert. 키업에 대해 매우 성 가실 것 alert입니다.
cytsunny

4
@cytsunny 그래, 경고는 성가신 일이지만,이 경우 값 변경시 실행될 코드의 예입니다. 실제로 원하는 페이로드가 될 수 있습니다.
Alejandro Silva

1
마우스 오른쪽 버튼을 클릭하고 붙여 넣기하면 붙여 넣기 전에 입력 값이 반환됩니다.
alstr

104

기술

jQuery의 .bind()메소드를 사용하여이를 수행 할 수 있습니다 . jsFiddle을 확인하십시오 .

견본

HTML

<input id="myTextBox" type="text"/>

jQuery

$("#myTextBox").bind("change paste keyup", function() {
   alert($(this).val()); 
});

추가 정보



6

당신은 또한 텍스트 상자 이벤트를 사용할 수 있습니다-

<input id="txt1" type="text" onchange="SetDefault($(this).val());" onkeyup="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();">

function SetDefault(Text){
  alert(Text);
}

이 시도


5

이 시도:

기본적으로 각 이벤트를 설명하십시오.

HTML :

<input id = "textbox" type = "text">

jquery :

$("#textbox").keyup(function() { 
    alert($(this).val());  
}); 

$("#textbox").change(function() { 
alert($(this).val());  
}); 



0

이것을 사용하십시오 : https://github.com/gilamran/JQuery-Plugin-AnyChange

컨텐츠 메뉴를 포함하여 입력을 변경하는 모든 방법을 처리합니다 (마우스 사용).


어떻게 사용합니까? HTML에 포함시키고 $ ( "input"). anyChange (function (e) {console.log (e);}); 그러나 그것은 결코 console.log 라인에 도착하지 않았습니다
Ofer Gal

0

이 이벤트 조합은 저에게 효과적이었습니다.

$("#myTextBox").on("input paste", function() {
   alert($(this).val()); 
});

0

행사 cutselect행사를 잊지 마십시오 !

허용되는 답변은 거의 완벽하지만 cutselect이벤트를 잊어 버립니다 .

cut 사용자가 텍스트를 자르면 시작됩니다 (CTRL + X 또는 마우스 오른쪽 버튼 클릭).

select 사용자가 브라우저 제안 옵션을 선택하면 시작됩니다

다음과 같이 추가해야합니다.

$("#myTextBox").on("change paste keyup cut select", function() {
   //Do your function 
});
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.