2012-12-15 5 views
0

HTML 양식의 입력 내용의 유효성을 검사하려고합니다. 하나의 스크립트를 사용하여 몇 가지 유사한 요소가있는 다양한 양식의 유효성을 검사하려고합니다. 전체적으로 약 15 개의 다른 필드가 있지만 3 개만 넣을 것입니다. 아래는 모든 요소가 있지만 특정 필드가없는 양식에서는 실패하는 양식에 대한 것입니다.자바 스크립트 양식 유효성 검사

if (form.name.value == ""){ // Check if blank 
    alert("\nEnter a name."); 
    form.name.focus(); 
    return false; // Stop the form processing. 
    } 

else if (!/^\w{10}$/.test(form.phone.value)) { // Check for phone 
    form.name.style.border="" 
    alert("\nEnter a valid phone number!"); 
    form.phone.focus(); 
    return false; // Stop the form processing. 
    } 

else{ 
return true; // Submit! 

모든 항목이있는 경우에만 작동하기 때문에 존재하는 경우에만 유효성을 검사합니다. 유효성 검사를 시도하기 전에 요소를 확인해야하는 문을 사용하여 유효성 검사를 중첩 시키려고했습니다. 요소가 존재하지 않으면 다음으로 이동해야합니다.

if (document.forms[0].name){ //does field exist? 
    if (form.name.value === ""){ 
     alert("\nEnter a name."); 
     form.name.focus(); 
     return false; // Stop the form processing. 
     } 
    else{ 
     return true; //field ok move on. 
     } 
    } 

else if (document.forms[0].phone){ 
    if (!/^\w{10}$/.test(form.phone.value)) { user 
     form.name.style.border="" 
     alert("\nEnter a valid phone number!"); 
     form.phone.focus(); 
     return false; // Stop the form processing. 
     } 
    else{ 
     return true; //field ok move on. 
     } 
    } 
else{ 
     return true; // Submit! 
} 

아무 도움이됩니다.

+1

귀하의 "전화"정규식은 매우 유용하지 않습니다 ... – elclanrs

+0

나는 공백과 비 수치 onblur를 제거하는 별도의 기능을 가지고 있습니다. – h8a

답변

1

현재 (document.forms [0] .name)을 사용할 수 있는지 확인한 다음 이것이 죽었 으면 확인합니다 (document.forms [0] .phone)가 true이고 ..... 그리고 아무도 사실이 없다면 그것은 '다른 사람'에게로 돌아가고 반환은 사실입니다. if else을 사용하면이 부분이 실패한 후에 만 ​​신경 쓸 수 있습니다.

시도해 볼 수 있습니다. 함수가 어쨌든 참으로 반환하는 것입니다으로

if (document.forms[0].name) { 
    if (!/^\w{10}$/.test(form.phone.value)) { user 
     form.name.style.border="" 
     alert("\nEnter a valid phone number!"); 
     form.phone.focus(); 
     return false; // Stop the form processing. 
    } 
} 
if (document.forms[0].blah) { 
    do stuff... 
    if fail 
     return false; 
} 
return true; 

, 당신은 (는 returned을 가지고 있으며, 중지로이 프로세스를 중지합니다) 다른 곳에서는 true를 돌려 명시 할 필요가 없습니다. 상황이 잘못되었을 경우 프로세스를 중지하는 유일한 이유는 다음과 같습니다. 그러므로 return false;

+0

그게 전부 였어. 감사! – h8a

1

양식을 확인하기 만하면 요즘 javascript를 작성할 필요가 없습니다. html5 forms을 사용할 수 있습니다. 이 기능을 사용하지 않고 브라우저를 지원해야하는 경우에도 페이지에 webshims lib을 넣으면 사용하도록 설정할 수 있습니다.

+0

이것에 대해 살펴 보겠습니다. 감사! – h8a

관련 문제