2013-04-15 5 views
1

양식 유효성 검증을위한 noob의 비트. 이 양식을 필수 입력란에서 유효성을 검사하려고하고 있는데 뭔가 이상한 점이 있습니다.양식이 유효하지 않습니다 - javascript

HTML :

<form action="../visit/thankyou.html" method="post" id="vsurvey"> 
    <input type="hidden" name="id" value="503" /> 
    <fieldset> 
     <legend>Group and Coordinator Information</legend> 
     <label><span>Group Leader Name<span style="color:#cc2d30">*</span></span> 
      <input type="text" name="question_8149" /> 
     </label> 
     <label><span>Email<span style="color:#cc2d30">*</span></span> 
      <input type="text" name="question_8155" /> 
     </label> 
     <label><span>Phone<span style="color:#cc2d30">*</span></span> 
      <input type="text" name="question_8156" /> 
     </label> 
     <label><span>School/Organization<span style="color:#cc2d30">*</span></span> 
      <input type="text" name="question_8159" /> 
     </label> 
     <label><span>Program</span> 
      <input type="text" name="question_8180" /> 
     </label> 
     <label><span>Grade(s)</span> 
      <input type="text" name="question_8181" /> 
     </label> 
     <label><span>Number of Participants<span style="color:#cc2d30">*</span></span> 
      <input type="text" name="question_8182" /> 
     </label> 
    </fieldset> 
    <fieldset> 
     <label><span>Preferred Date<span style="color:#cc2d30">*</span></span> 
      <input class="date" type="text" id="question_8185" name="question_8185" /> 
     </label> 
     <label><span>Second Preference Date<span style="color:#cc2d30">*</span></span> 
      <input class="date" type="text" id="question_8186" name="question_8186" /> 
     </label> 
     <label><span>Third Preference Date<span style="color:#cc2d30">*</span></span> 
      <input class="date" type="text" id="question_8187" name="question_8187" /> 
     </label> 
     <label>Special Accommodations 
      <input type="text" name="question_8174" /> 
     </label> 
    </fieldset> 
    <label>What is the purpose or desired outcome of this visit? 
     <textarea name="question_13026"></textarea> 
    </label> 
    <label>How did you learn about our Group Visit Program? 
     <textarea name="question_8176"></textarea> 
    </label> 
    <label>Comments 
     <textarea name="question_8184"></textarea> 
    </label> 
    <input type="submit" id="sbutton" value="Submit Request" /> 
</form> 

JS : 여기에 내가 함께 일하고 있어요 무엇

function validateForm() { 
    var x = document.forms["vsurvey"]["question_8149"].value; 
    if (x == null || x == "") { 
     alert("Please fill in the Group Leader's name."); 
     return false; 
    } 

    var x = document.forms["vsurvey"]["question_8155"].value; 
    if (x == null || x == "") { 
     alert("Please fill in the email field."); 
     return false; 
    } 

    var x = document.forms["vsurvey"]["question_8156"].value; 
    if (x == null || x == "") { 
     alert("Please fill in the phone field."); 
     return false; 
    } 

    var x = document.forms["vsurvey"]["question_8159"].value; 
    if (x == null || x == "") { 
     alert("Please fill in the School/Organization field."); 
     return false; 
    } 

    var x = document.forms["vsurvey"]["question_8182"].value; 
    if (x == null || x == "") { 
     alert("Please indicate the number or participants."); 
     return false; 
    } 

    var x = document.forms["vsurvey"]["question_8185"].value; 
    if (x == null || x == "") { 
     alert("Please enter your preferred date."); 
     return false; 
    } 

    var x = document.forms["vsurvey"]["question_8186"].value; 
    if (x == null || x == "") { 
     alert("Please enter your second date preference."); 
     return false; 
    } 

    var x = document.forms["vsurvey"]["question_8187"].value; 
    if (x == null || x == "") { 
     alert("Please enter your third date preference."); 
     return false; 
    } 
} 

http://jsfiddle.net/blackessej/9a6BJ/1/

는 현재 양식 어쨌든 정보를 제출하지만,에 사용자를 보내지 않고 모든 필수 입력란을 제출하지 않은 경우 감사 페이지. 필요한 모든 입력란이 제출되면 방문 페이지가 호출됩니다.

+1

당신이'validateForm' 부르죠 양식의 태그의 onsubmit 이벤트를 사용할 필요가? – lbstr

+1

폼의 onsubmit 이벤트를 사용하여 validateForm 메서드를 트리거해야합니다 ... 분명히 –

+2

이라고도 부르지 않습니다. 모든 것이 유효하면'validateForm'은 현재'undefined'를 반환합니다. 단지'return true'를 하단에 추가하십시오 – lbstr

답변

2

. 귀하의 입력 버튼은 다음

<input type="submit" id="sbutton" value="Submit Request" onclick="return validateForm()" /> 

수 또는

<form action="../visit/thankyou.html" method="post" id="vsurvey" onsubmit="return validateForm()"> 
+0

인라인 JS를 사용하지 마십시오! 스크립트에서 제출 이벤트를 작성하는 것만으로도 (그리고 무한히 나은) 쉽습니다. –

+0

많이 감사합니다. @ 로버트. 지금은 매력처럼 작동합니다. – blackessej

+0

@ 로버트, 시간과 성향이 있다면 계속 질문을하겠습니다. 오류 메시지는 현재 가장 검증되지 않은 필드의 메시지를 위로 만 호출합니다. 확인되지 않은 모든 필드에 대해 오류 메시지를 호출하도록 코드를 어떻게 적용 할 수 있습니까? – blackessej

2

당신은 validateForm를 호출하는 onSubmit 이벤트를 만들 필요가 : 당신은 validatorForm를 호출하지 않는

document.getElementById('vsurvey').onsubmit = validateForm; 
관련 문제