2011-07-29 3 views
1

javascript가있는 프로젝트에서 일부 양식 유효성 검사를하고 있습니다. 어떤 일을하는지는 잘되지만 더 나은 방법이있을 것 같습니다. 여기에 내가 가진 것의 예가있다.javascript로 양식 유효성 검사를 수행하는 "올바른"방법은 무엇입니까?

onkeypress="return keyNumOnly(event)" 
function keyNumOnly(key) 
{//this allows numbers and decimals. 
    var keychar; 
    var numcheck; 
    var keynum; 
    if(window.event) // IE 
     { 
      keynum = key.keyCode; 
     }  
    else if(key.which) // Netscape/Firefox/Opera 
     { 
      keynum = key.which; 
     } 
    if (keynum==8) 
     { 
      return true; 
     } 
    keychar = String.fromCharCode(keynum); 
    numcheck = /\d/; 
    if (keychar== ".") 
     { 
      return true;  
     } 
    return numcheck.test(keychar); 
} 

답변

1

일부 정리 :

someTextbox.onkeypress = function(event) { // you can pass a function directly 
    var event = event || window.event, 
     // this means: event or window.event if event does not exist 

     keynum = event.keyCode || event.which, 
     // event.keyCode or event.which otherwise 

     keychar = String.fromCharCode(keynum), 

     numcheck = /\d/; 


    if(/\t|\./.test(keychar)) { 
     // checking for dot or tab using a regexp: \t is tab, | means 'or', \. is dot 
     return true; 
    } 


    return numcheck.test(keychar); 
} 
+0

감사합니다. 나는 꽤 많이 새로운 코드를 사용하여 정리를 할 수 있다는 것을 알고있다. – chris

1

양식 유효성 검사를 수행하려면 사전 패키지 솔루션을 사용하는 것이 좋습니다. 예를 들어, jQuery를 사용할 수있는 경우 jQuery Validation Plugin은 양식 유효성 검사의 훌륭한 역할을합니다. '제출'이벤트 이전의 유효성 검사는 물론 실제 유효성 검사도 가능합니다.

+0

덕분에 저스틴. 내 프로젝트의 다른 부분에서 jquery를 사용하고 있으므로이를 구현하는 방법을 찾아야 할 것입니다. 예,이 부분에 대한 실시간 유효성 검사를 수행하고 있습니다. 제출 유효성 확인은 서버에서 수행됩니다. – chris

+0

반갑습니다. 나는 당신이 서버 측 유효성 검사를 할 필요가 있다는 것에 동의한다. 나는이 플러그인의 기능 중 일부를 지적하려고했습니다. 어쨌든 행운을 빌어 요! :) –

+0

검증을 위해 사용한 몇 줄의 예제 jquery 코드를 제공한다고 생각하십니까? – chris

0

(예 : regexes에 대한) 양식 평가는 HTML5의 일부이므로 곧 브라우저 자체에서 수행 할 수 있습니다.

Dive into HTML5 explains how

+0

좋은 정보 그러나 이것은 실제로 매우 흥미로운 정보 인 질문 – Pepe

+0

에 대답하지 않습니다. 하지만 유효성 검사는 매우 구체적입니다. 마치 숫자뿐 아니라 # .-()와 같은 특수 문자를 원합니다. – chris

관련 문제