[JQUERY] 키 누르기 변경
JQUERY키 누르기 변경
해결법
-
1.키 이벤트와 연결된 문자 또는 키를 변경하거나 키 이벤트를 완전히 시뮬레이트 할 수 없습니다. 그러나 키 누르기를 처리하고 현재 삽입 포인트 / 캐럿에서 원하는 문자를 수동으로 삽입 할 수 있습니다. 나는 스택 오버플로의 여러 위치 에서이 작업을 수행하는 코드를 제공했습니다. ContentEditable 요소의 경우 :
키 이벤트와 연결된 문자 또는 키를 변경하거나 키 이벤트를 완전히 시뮬레이트 할 수 없습니다. 그러나 키 누르기를 처리하고 현재 삽입 포인트 / 캐럿에서 원하는 문자를 수동으로 삽입 할 수 있습니다. 나는 스택 오버플로의 여러 위치 에서이 작업을 수행하는 코드를 제공했습니다. ContentEditable 요소의 경우 :
여기에 JSFiddle 예제가 있습니다. http://www.jsfiddle.net/ukkmu/4/
입력의 경우 :
크로스 브라우저 JSFiddle 예 : http://www.jsfiddle.net/exh2k/6/
IE> = 9 및 IE-IE JSFIDDLE 예제 : http://www.jsfiddle.net/exh2k/7/
-
2.내 솔루션 예제 (입력의 변경 [유형 = 텍스트] 문자 '', ''. ') :
내 솔루션 예제 (입력의 변경 [유형 = 텍스트] 문자 '', ''. ') :
element.addEventListener('keydown', function (event) { if(event.key === ','){ setTimeout(function() { event.target.value += '.'; }, 4); event.preventDefault(); };
-
3.여기에서 대체 할 간단한 예입니다. 바닐라 자바 스크립트 사용
여기에서 대체 할 간단한 예입니다. 바닐라 자바 스크립트 사용
// 로 변경 '.' document.getElementByID ( 'only_float'). addEventListener ( '키 누름', 함수 (e) { if (e.key === ',') { // 오래된 값을 가져옵니다 var start = e.target.SelectionStart; var end = e.target.Selectionend; var oldvalue = e.target.value; // 점을 교체하고 입력 값을 변경합니다 var newValue = oldvalue.slice (0, start) + '.' + OldValue.Slice (End) e.target.value = newValue; // 커서를 대체합니다 e.target.SelectionStart = e.target.SelectionEnd = 시작 + 1; e.preventDefault (); } }) <입력 유형 = "텍스트"id = "only_float"/>
-
4. 또는
또는
$('input.whatever').keypress(function() { var inp = this; setTimeout(function() { inp.value = inp.value.replace(/a/g, 'b'); }, 0); });
이 접근법은 아마도 "누르면"캐릭터를 실제로 교체 한 무언가로 당길 수있는 모든 가능한 트릭을 처리 할 수 없었지만 실제로 그렇게 할 수있는 방법은 모릅니다.
편집 - 오, 타임 아웃 처리기에서 일어나는 "Fixup"에서이 예제에서 입력 한 이유는 브라우저가 "KeyPress"이벤트에 대한 기본 동작을 처리 할 수있는 기회가 있는지 확인합니다. 시간 초과 처리기 코드가 실행되면 요소의 값이 업데이트되었는지 확인합니다. 이 코드에화물 컬트의 터치가 있습니다.
-
5.이것이 "쉽게"할 수 있는지 확실하지 않습니다.
이것이 "쉽게"할 수 있는지 확실하지 않습니다.
$(window).keypress(function(e) { //Captures 'a' or 'A' if(e.which == 97 || e.which == 65) { //Simulate a keypress in a specific field } });
jQuery가 키 누르기 이벤트 등을 시뮬레이트하기 위해 시뮬레이트 플러그인이 있음을 알고 있습니다. jQuery는 시뮬레이션합니다. 또한 조금을 가치가있을 수 있습니다. 또한 일부 유형의 jquery trigger () 이벤트 일 수도 있습니다.
-
6.다음은 라이브러리를 사용하지 않고도 예제입니다
다음은 라이브러리를 사용하지 않고도 예제입니다
const 입력 = document.querySelector ( '입력') // 이벤트의 순서가 입력됩니다. input.addeventListener ( 'Focus', OnFocus) input.addeventListener ( 'keydown', keydown) input.addeventListener ( '키 누름', 키 누르기) input.addeventListener ( '입력', OnInput) input.addeventListener ( 'keyup', keyup) input.addeventListener ( '변경', OnChange) input.addeventListener ( 'blur', onblur) 기능 OnFocus (이벤트) {Info (이벤트)} 기능 키 다운 (이벤트) {info (이벤트)} 기능 키 누르기 (이벤트) { 정보 (이벤트) //이 2 개의 통화는 'input` 및`변경'이벤트를 중지합니다. event.preventDefault (); event.stopPropagation (); // 현재 소품을 가져옵니다 const target = event.target. const start = target.SelectionStart; const end = target.selectionend; const val = target.value; // 이벤트를 기반으로 char를 가져옵니다 const char = getchar (이벤트); // 새 값을 만듭니다 const value = val.slice (0, start) + char + val.slice (end); // 처음으로 attemp를 설정합니다 // (값 세터가 덮어 짐) 때문에 반응에서 작동하지 않습니다) // target.value = 값 // 두 번째 ATTEMP 가치를 설정하고, 원주민을 가져옵니다. Const NativeInputValuesetter = Object.GetoWnPropertyDescriptor ( window.htmlInputElement.Prototype, "값" ).세트; NativeInputValuesetter.call (대상, 값); // 커서 위치를 변경합니다 target.SelectionStart = target.selectionend = start + 1; // 'input` dispatch Const NewEvent = New InputEvent ( '입력', { 거품 : 사실, InputType : 'insertText', 데이터 : char. }) event.target.dispatchEvent (newEvent); } 기능 Keyup (이벤트) {info (이벤트)} 기능 OnInput (이벤트) {info (이벤트)} 기능 OnChange (이벤트) {info (이벤트)} 기능 OnBlur (이벤트) { //`변경 '을 다시 발송합니다 Const NewEvent = 새 이벤트 ( '변경', {거품 : true}) event.target.dispatchEvent (newEvent); 정보 (이벤트) } 함수 정보 (이벤트) {console.log (event.type)} 기능 getChar (이벤트) { // 문자가 문자이면 x가 표시됩니다. return event.code.startswith ( '키') ~을 빼앗아가는 것 '엑스' : event.code.startswith ( '숫자') ~을 빼앗아가는 것 '와이' : 'Z' } <입력 유형 = "텍스트">
from https://stackoverflow.com/questions/4604930/changing-the-keypress by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] xmlHttp.getResponseHeader + CORS이 작동하지 않음 (0) | 2020.11.03 |
---|---|
[JQUERY] 자바 스크립트 알고리즘은 다른 배열에없는 배열의 요소를 찾을 수 (0) | 2020.11.03 |
[JQUERY] 내용으로 수평으로 스크롤하기 위해 고정 된 위치 div를 어떻게 움직입니까? jQuery를 사용합니다 (0) | 2020.11.03 |
[JQUERY] Ctrl 키를 사용하지 않고 HTML Select 요소에서 여러 번 선택 (0) | 2020.11.03 |
[JQUERY] JavaScript에서 문자열을 XML 문서로 변환합니다 (0) | 2020.11.03 |