2015-01-25 2 views
1

html에서는 입력 허용 문자 만 만들고 싶습니다. onkey (up | press | down) 이벤트가 있다는 것을 알고 있습니다. 그러나 시도한 경우 처음에 눌렀던 숫자 하나가 잠시 얼굴을 아름답게 보일 것입니다. 그래서 (제목의 질문) ----은 키보드로 숫자가 아닌 단어를 누르면 입력 태그가 아무런 반응을 나타내지 않음을 의미합니다. 단어가 생성되고 입력 태그에 그 얼굴을 표시하려고한다고 생각하지만 그 사실을 알지 못했습니다.입력 태그는 숫자가 아닌 단어의 얼굴을 표시하지 않습니다.

+1

이미 시도한 예제 또는 코드를 제공 할 수 있습니까 –

+1

"숫자의 얼굴"로 무엇을 의미하는지 설명해주십시오. –

+0

onkeyup = " this.value = this, value.replace (/ \ D/g, '') "키보드에서 비 디지털 단어를 누르고 스틸을 누르면조차도 그 단어는 사라지지 않습니다. – IsEE

답변

1

keyup 이벤트는 키보드 키를 놓은 후에 만 ​​발생하고 문자는 이미 textarea/input 요소로 전달됩니다.

다른 한편으로는 키를 누르면 즉시 취소되고 이벤트를 취소하면 charater는 처음 입력 필드에 삽입되지 않습니다.

사용자가 입력란을 사용하는 데 필요한 다른 키 누르기를 제거하지 않도록 신중하게 처리해야합니다 (예 : f.e. 커서 키 또는 ins/del 등

(값을 제출하거나 다른 방법으로 사용하기 전에 값의 유효성 검사/위생 처리를 추가 할 수 있습니다. 값이 다른 방법으로 입력 필드에 입력 될 수 있기 때문입니다 컨텍스트 메뉴를 통해 트리거 된 fe 붙여 넣기와 같은 이벤트는 잡히지 않을 것입니다.

+0

onkeydown 이벤트를 캡처하려고했습니다. 그러나 입력 한 첫 단어가 숫자가 아닌 경우 단어가 나타납니다. 그러면 입력 한 첫 단어에 대해서는 작동하지 않습니다. – IsEE

+0

당신은 아마도 그것을 잘못하고 있습니다 ... – CBroe

+0

마침내 알아 냈어, onkeydown 반환 함수를 캡처하기 전에 "alert ('a')"코드를 추가 한 다음 작동하지 않았습니다. 해당 경고 코드를 삭제하면 올바르게 작동합니다.
PS. 이벤트가 취소되지 않지만 끝날 때까지 작업 한 후 '거짓'신호를 반환하여 다음 단계를 중지합니다. – IsEE

0

100 % 할 수 없습니다. 내가 작성한 JavaScript 코드는 항상 비활성화하거나 편집 할 수 있으므로이 검사만으로 유효성을 검사하지 말고 항상 서버 측의 유효성을 검사하는 것이 좋습니다. 클라이언트 측 유효성 검사를 수행하기위한로서

, 현대적인 브라우저과 같이, 당신은 <input>type 속성을 내장하는 기능을 사용하고 number로 설정 한 :

<form> 
 
    <p>Try to enter a non number and submit.</p> 
 
    <input type="number"> 
 
    <button>Submit</button> 
 
</form>

+0

방금 ​​입력의 유형을 변경 한 다음 입력에 플러스 또는 마이너스로 두 개의 추가 버튼이 표시되고 숫자가 아닌 단어도 입력 할 수 있습니다. – IsEE

+1

예, 양식을 제출할 수 없습니다. 이것은 브라우저가 제공하는 무료 기능이므로 구현할 필요가 없습니다. 사용자 유형을 심각하게 방해하는 것은 UX에 좋지 않습니다. –

+0

방금 ​​입력 유형을 변경 한 다음 입력에 플러스 또는 마이너스로 두 개의 추가 버튼이 표시되고 숫자가 아닌 단어도 입력 할 수 있습니다.
나는 JS가 단지 사용자가 쓰는 단어의 형식을 정하기를 원한다. 그래서 그들은 정확히 그들이 틀린 코드가 될 것이란 비 수치를 삭제하는 것을 방해하지 않을 것이다. – IsEE