2010-06-22 3 views
17

의 값 number 방법 : 오페라에서나는 새로운 HTML5 입력 유형 중 하나를 사용 해요 HTML5 번호 입력

<input type="number" /> 

, 나는 현재를 인식하고, 그것을 알고있는 유일한 데스크톱 브라우저입니다 등을 렌더링 :

enter image description here

내가 직면하고있어 문제는 검증 중 하나입니다. 사용자가 필드에 무언가를 입력하면 (예 : "abc") myInput.value에 의해 반환 된 값은 빈 문자열입니다. 이로 인해 사용자가 필드를 비워 두 었는지 또는 잘못된 데이터를 입력했는지 여부를 알 수 없습니다. 현장의 진정한 가치를 얻을 수있는 방법이 있습니까?

답변

13

HTML5의 초안은 정의 다음과 같이

값 위생 알고리즘은 다음과 같습니다 요소의 값이 유효한 부동 소수점 숫자가 아닌 경우, 대신 빈 문자열로 설정합니다. 을 차별화 할 확실한 방법은없는 것 같다부터

Reference1

나는, 당신은 필드가 유효하지 않은 무언가가 입력 된 경우의 손길이 닿지 않은 또는 왼쪽 된 사용을 확인하기 위해 "0"의 기본 값을 가질 거라고 생각 두.

<input id="email" type="email" value="blah"> 
document.getElementById("email").validity.typeMismatch // True 

<input type="number">에서 작동하지 않습니다 :

검증 사양과 (오페라 10.54에서) 몇 가지 테스트를 읽은 후 나는 결론을 내렸다. 그것이 예정되어 있거나 진행중인 작업인지 확실하지 않습니다. 그러나 속성은 항상 존재하지만 False를 반환합니다.

Read more2

또한 사용자 정의 검증 방법을 Reference3

+2

오 공을 설정할 수 있습니다. 입력란을 비워두면 내 용도에 맞는 유효한 상태 여야합니다 (0을 입력하는 것과는 다릅니다 ...). 어쨌든 고마워요. – nickf

+0

그 스펙은 "부동 소수점 값을 파싱하는 규칙을 입력하여 오류가 발생하면 오류를 반환하고, 그렇지 않으면 결과 숫자를 반환합니다."라고 말합니다. 그 오류를 잡을 방법이있을 것이라고 생각하십니까? – nickf

+0

업데이트 된 답변보기 – Daniel

관련 문제