이 기사에서는 입력 시간 형식을 제어하는 JavaScript 방법에 대해 설명합니다. 참조를 위해 공유하십시오. 특정 분석은 다음과 같습니다.
주로 키 다운 및 키 업 이벤트를 사용하여 시간 형식을 제어하기 위해 JavaScript 입력을 만들었지 만 글이 매우 복잡하고 버그가 있다고 생각했습니다.
오늘 저는 Keypress 이벤트와 Keydown과 Keyup의 차이점에 대해 배웠습니다. 그것은 대략 다음과 같습니다 (지금은 너무 많이 알고 있습니다) :
키 다운 : 키를 누르면 트리거되었습니다. 이벤트를 통해 키 코드를 가져 와서 텍스트 상자에 입력하기 전에 값을 얻을 수 있습니다.
Keyup : 키가 팝업되면 트리거되었습니다 (릴리스). 키 코드는 이벤트를 통해 얻을 수 있으며 텍스트 상자의 입력 후 값을 얻을 수 있습니다.
Keypress : 이 이벤트는 기본적으로 Chrome과 IE에서 동일하지만 Firefox는 약간 다릅니다.
1. Chrome과 IE에서 : 텍스트 상자에 눌린 키가 문자가 나타날 수있는 한 (입력 문자, 숫자, 기호 등) 트리거되면 이벤트를 통해 키 코드를 얻을 수 있으며 이벤트는 정의되지 않습니다. 캐릭터가 나타날 수없는 경우 트리거되지 않습니다 (예 : 화살표 키, 홈, 백 스페이스 등).
2. Firefox에서 : 문자, 숫자, 기호, 방향, 백 스페이스 등과 같은 키는 모두 트리거 될 수 있습니다. 키 이름은 event.key를 통해 얻을 수 있습니다. 눌린 키가 문자를 출력 할 수있는 경우 event.keycode는 0입니다. 문자를 출력 할 수없는 경우 event.keyCode는 해당 ASCII 코드입니다.
주제로 돌아가서 코드를 먼저보십시오 (위의 이벤트는 다음 코드에서 E와 같습니다).
코드 사본은 다음과 같습니다. var isff = /firefox/i.test(navigator.useragent);
$ ( "입력"). on ({{
keyup : function (e) {
!/^[/d :]+$/. test (e.target.value) && (e.target.value = "");
},
Keypress : 함수 (e) {
if (isff && e.keycode! == 0) {
/// Firefox에서 키를 누르면 Keypress 이벤트가 트리거되고 IE/Chrome에서는 문자를 출력 할 수있는 키 만 트리거됩니다.
/// Firefox의 경우, e.keyCode! == 0은 백 스페이스, 방향, 가정 및 기타 키 중 하나를 누릅니다.
} 또 다른 {
if (e.target.value.length> 7)
거짓을 반환합니다.
if (//d {2 }$/.test(e.target.value)) {
e.target.value += ':';
}
var char = string.fromCharCode (e.keyCode === 0? E. Whoy : e.keycode);
if (!/^/d/.test (char))
거짓을 반환합니다.
}
}
});
isff && e.keycode! == 0은 Firefox의 문자를 출력 할 수있는 키와 문자를 출력 할 수없는 키를 구별하는 데 사용됩니다. Firefox의 e.keycode는 반드시 값을 얻을 필요는 없기 때문에 대신 사용됩니다.
Keyup은 입력 방법을 사용할 때 중국어 또는 문자를 입력 할 수있는 문제를 처리하는 데 사용됩니다.
string.fromcharcode ()를 사용하여 ASCII 코드에 해당하는 문자를 얻으십시오.
이 기사가 모든 사람의 JavaScript 프로그래밍에 도움이되기를 바랍니다.