2012-07-02 5 views
21

아래 코드는 HTML 양식의 코드입니다. 입력이 정수 있어야하는 경우, 당신은 HTML5를 사용하는 경우정수용 HTML 양식의 입력 유형

<div class="friend2title"> 
    <label for="url">Add points:</label> 
</div> 
<div class="friend2field"> 
    <input name="state" type="text" id="state" maxlength="150"> 
</div> 
+0

어떤 브라우저 버전을 지원해야합니까? – Eric

답변

20

, 당신은 입력 타입 number를 사용해야합니까? 나는 "유형 '을 변경해야 할. 당신이 XHTML을 사용하는 경우 또는 HTML 4 입력 유형이 text해야

+0

그리고 실제로 * 번호가 있는지 확인하십시오. 네. – uotonyh

+2

좋아요 ... HTML 5를 사용하고 있는지 어떻게 알 수 있습니까? – John

+2

@ 존 당신은 단지'number'를 사용할 수 있습니다; 그것은 물론 HTML 4 검증을 실패 할 것이지만 HTML 4 브라우저는 그것을 텍스트 형태로 취급 할 것입니다. – Neil

0

을 아니, 입력의 데이터 타입에 대해 아닙니다 그것은 type of control to create 지정합니다..

유형 = 텍스트 | 암호 | 체크 박스 | 라디오 | 제출 | 재설정 | 파일 | 숨김 | 이미지 | 단추 [CI] 이 속성은 contr 유형을 지정합니다 만들 수 있습니다. 이 속성의 기본값은 "text"입니다.

3

는 이전에 HTML5로, 입력 유형 = "텍스트" 단순히 필드에 관계없이 당신이 할 수 원하는 것을 무료로 텍스트를 삽입하는 것을 의미합니다. 사용자가 올바른 번호를 입력하도록 보장하기 위해해야 ​​할 유효성 검사 작업입니다.

HTML5를 사용하는 경우 새 입력 유형을 사용할 수 있습니다. 그 중 하나는 이며 자동으로 유효성을 검사합니다 텍스트 입력, 그리고 숫자가 강제로

당신은 서버 쪽 응용 프로그램 (예 : php)을 구축하는 경우에도 그면의 입력을 유효화해야한다는 것을 명심하십시오. html을 해킹하고 입력 유형을 변경하고 브라우저 유효성 검사를 제거하기가 꽤 쉽기 때문에

-4

입력에 대한 숫자를 허용하려는 경우에도 , text 유형을 사용하는 것이 좋습니다.

클라이언트 측에서 일부 jQuery 유효성 검사를 실행하여 숫자인지 확인합니다.

그런 다음 서버 측 코드에서 유효성 검사를 실행하여 실제로 숫자 값인지 확인하십시오.

19
<input type="number" step="1" ... 

step 특성을 추가하면 입력을 정수로 제한합니다.

물론 서버에서도 항상 유효성을 검사해야합니다. 신중하게 통제 된 조건을 제외하고는 고객으로부터받은 모든 것을 용의자로 취급해야합니다.

<input type="number" step="1" pattern="\d+" /> 

step은 편의를위한 (다른 정수로 설정 될 수있다)하지만, 일부 실제 수행 및이 pattern 수행합니다

+3

이 답변은 HTML5에만 유효합니다. –

+1

This 수동으로 플로트에 들어가는 것을 막지는 못합니다. –

+1

@PetrPeller 다를 수 있습니다. [MDN imput number] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number#Allowing_decimal_values)에서 십진수 값 허용하기 숫자 입력과 관련된 한 가지 문제점은 해당 단계 크기는 기본적으로 1입니다. - "1.0"과 같이 10 진수로 숫자를 입력하려고하면 유효하지 않은 것으로 간주됩니다. 소숫점이 필요한 값을 입력하려면 소수점 이하 두 자리까지 소수점 이하 자릿수를 허용하려면 단계 값에이를 반영해야합니다 (예 : step = "0.01"). 다음은 간단한 예입니다. ' – PhoneixS

9

이 도움이 될 수 있습니다.

pattern이 전체 표현식과 일치하므로 ^\d+$으로 표시 할 필요가 없습니다.심지어이 바깥쪽으로 꽉 정규 표현식과

, 크롬과 파이어 폭스의 구현, 흥미롭게도 여기 e을 허용뿐만 아니라 음수 - 및 크롬 (아마도 과학적 표기) 또한 파이어 폭스하지 않는 한 거부에 엄격한 반면 . 수 있습니다 . 다음에 0이옵니다. (Firefox는 입력 손실시 입력란에 빨간색으로 표시되지만 Chrome에서는 처음에는 허용되지 않는 값을 입력 할 수 없습니다.)

다른 사람들이 관찰 한 것처럼 항상 서버에서 유효성을 검사해야합니다. 클라이언트에서 값을 로컬로 사용하거나 사용자가 서버로 왕복하지 못하도록하려는 경우).

+0

Firefox에서는 Chrome에서'패턴 '을 추가하면 분수 부분을 사용하면 해당 필드가 유효하지 않은 것으로 표시됩니다. –