통화의 경우 다음과 같이 제안합니다.
<div><label>Amount $
<input type="number" placeholder="0.00" required name="price" min="0" value="0" step="0.01" title="Currency" pattern="^\d+(?:\.\d{1,2})?$" onblur="
this.parentNode.parentNode.style.backgroundColor=/^\d+(?:\.\d{1,2})?$/.test(this.value)?'inherit':'red'
"></label></div>
http://jsfiddle.net/vx3axsk5/1/ 참조
HTML5 속성 "step", "min"및 "pattern"은 양식을 제출할 때 onblur가 아닌 유효성이 검사됩니다. 당신은 필요하지 않습니다 step
당신이있는 경우에 pattern
당신은 필요하지 않습니다 pattern
당신이있는 경우 step
. step="any"
패턴이 어쨌든 유효성을 검사하므로 코드로 되돌릴 수 있습니다.
onblur의 유효성을 검사하려면 사용자에게 시각적 신호를주는 것이 배경색을 색칠하는 것과 같이 도움이된다고 생각합니다. 사용자의 브라우저가 지원하지 않으면로 type="number"
대체됩니다 type="text"
. 사용자의 브라우저가 HTML5 패턴 유효성 검사를 지원하지 않으면 JavaScript 스 니펫이 양식 제출을 방해하지 않지만 시각적 신호를줍니다. 따라서 HTML5가 열악한 사람들이나 JavaScript를 비활성화하거나 HTTP 요청을 위조하여 데이터베이스를 해킹하려는 사람들은 어쨌든 서버에서 다시 유효성을 검사해야합니다. 프론트 엔드에서 유효성을 검사하는 요점은 더 나은 사용자 경험을위한 것입니다. 따라서 대부분의 사용자에게 좋은 경험이있는 한 코드가 여전히 작동하고 백엔드에서 유효성을 검사 할 수 있다면 HTML5 기능을 사용하는 것이 좋습니다.