2013-07-26 2 views
2

달러 금액을 입력해야하는 필드가있는 HTML 양식이 있습니다.HTML 양식에 달러 금액 입력란을 만드는 방법은 무엇입니까?

필자가 읽은 바에 따르면 자바 스크립트는 소수 부분을 숫자로 인식하지 못하고 받아 들여지는 연습은 달러 금액을 처리하는 대신 센트로 입력하는 것입니다.

문제는 필자가 작성한 양식은 양식 입력을 읽고 일부 조치를 수행하고이 금액을 ### ## 형식의 텍스트로 가져 와서 입력을 거부합니다. 이 정확한 형식.

궁금한 점은 : 5자를 사용하고 세 번째 문자를 영구적 인 소수점으로 설정하는 텍스트 상자를 만들 수 있습니까?

그렇지 않은 경우 입력이 올바른 형식인지 확인하기 위해 JS 유효성 검사를 사용할 수있는 방법이 있습니까?

감사합니다.

+0

이 게시물은 유효성을 검사하는 방법에 대한 답변을 제공합니다. portoverflow.com/questions/926866/jquery-us-currency-validation-regex-to-allow-whole-numbers-as-well – AntLaC

답변

1

나는 당신이 그것을 검증해야 할 것이라고 생각합니다. 이 게시물은 유효 달러 금액에 대한 좋은 정규 표현식을 가지고 있습니다 : Currency validation. 또한 사용자가 $ 412.234 또는 그와 비슷한 것을 입력 할 수 없도록 잘리는 방법에 대한 좋은 점이 있습니다.

0

HTML에서 특정 문자가 고정 된 텍스트 상자를 만들 수 없습니다. 사용자가 1234를 입력하는 것 (돈을 지정할 때)은 1234를 입력하는 것보다 자연스러운 것이므로 자동으로 마침표를 삽입해야하기 때문에 거의 필요하지 않습니다.

HTML5 pattern 속성을 사용하여 필요한 형식을 지정할 수 있습니다. 아직 모든 브라우저에서 지원되지는 않지만 지원되지 않을 때는 아무런 해가되지 않으며 JavaScript가 비활성화되어 있어도 검사를 수행합니다. 당신은 자바 스크립트는 물론 검사를 추가해야하고,이 같은 간단한 경우에, 어떤 라이브러리를 사용하는 대신 직접 코드를 작성하는 것이 더있을 수 있습니다

<input pattern="\d?\d\.\d\d" maxlength=5 size=5 onchange="check(this)"> 
<script> 
function check(elem) { 
    if(!elem.value.match(/^\d?\d\.\d\d$/)) { 
    alert('Error in data – use the format dd.dd (d = digit)'); 
    } 
} 
</script> 

사용되는 정규 표현식은 dd.dd와 D를 모두 받아들입니다. dd (첫 번째 형식 만 허용하려면 ?을 생략하십시오).

이 예제에서는 단순화를 위해 alert을 사용합니다. 실제 페이지에서 오류를 사용자에게 알려주는 덜 혼란스러운 방법 (일반적으로 이러한 메시지를 위해 예약 된 영역에 텍스트 쓰기)을 사용해야하지만,이를 수행하는 가장 좋은 방법은 전체 페이지의 디자인에 따라 다릅니다 .

은 (는 <input type=number min=0 max=99.99 step=0.01 ...>를 사용하는 것이 더 논리적 보일 수도 있지만, 이것은 심각한 현지화 문제를 제기 것이며, 브라우저는 오히려 가난하게 모든 경우에 type=number을 구현합니다. 가장 중요한 것은, 전송 된 데이터가 필요한 형식을 준수 것이라는 보장은 없습니다. 예를 들어 브라우저에서 생성 된 컨트롤을 사용하는 Chrome에서는 숫자가 0.09에서 0.1 사이가되며 0.10이 아니라 0.99에서 1로 변경됩니다.

관련 문제