2016-04-21 5 views
0

У меня есть функция для страницы регистрации, где, если требуемые данные не вводятся пользователем, тогда она предупреждает пользователя о ее заполнении. Форма по-прежнему отправляет информацию, хотя так не знаю, что я делаю неправильно. Я хочу, чтобы он не отправлялся до тех пор, пока все данные не будут представлены и не будут исправлены.Не отправлять, если все данные не введены

function checkdetails() 
{ 
    if (document.form1.txtname.value == "") 
    {alert("Please fiill in your forename."); 
    } 
    if (document.form1.txtsurname.value == "") 
    {alert("Please fill in your surname."); 
    } 
    if (document.form1.txtusername == "") 
    {alert("Please create a username."); 
    } 
    if (document.form1.DOBDay.selectedIndex == 0) 
    {alert("Please select the day you were born."); 
    } 
    if (document.form1.DOBMonth.selectedIndex == 0) 
    { alert("Please select the month you were born"); 
    } 
    if (document.form1.DOBYear.selectedIndex == 0) 
    {alert("Please fill in the year you were born."); 
    } 
    if (document.form1.txtemail.value == "") 
    {alert("Please enter your e-mail address."); 
    } 
    if (document.form1.terms.checked == false) 
    {alert("Please tick that you have read the Terms and Conditions."); 
    } 
} 
<form action="Home.html" method="post" name="form1" onsubmit="Display()"> 
    <table bgcolor="white" width="700" border="0" align="center"> 
    <col width="200"> 
    <col width="200"> 


    <tr> 
    <th colspan = "2" align = "center" bgcolor="grey"> Fill the form to sign up. </th> 
    </tr> 
<tr> 
    <td>&nbsp;</td> 
    </tr> 


    <tr> 
    <td colspan="2" style="font-size:12px">Fields marked with * are mandatory</td> 
    </tr> 


    <tr> 
    <td>&nbsp;</td> 
    </tr> 


    <tr> 
     <td>Forename*</td> 
     <td>Surname*</td> 
    </tr> 


    <tr> 
     <td><label> 
     <input type="text" name="txtname" id="txtname" class="info" /> 
     <td><label> 
     <input type="text" name="txtsurname" id="txtsurname" class="info" /> 
     </label></td> 
    </tr> 

    <tr> 
    <td> Create Username*</td> 
    <td> Birthday</td> 
    </tr> 

    <tr> 
    <td><label> 
    <input type="text" name="txtusername" id="txtusername" class="info"/> 
    </label></td> 




    <td><select name="DOBMonth"> 
    <option> Month </option> 
    <option value="January">January</option> 
    <option value="Febuary">Febuary</option> 
    <option value="March">March</option> 
    <option value="April">April</option> 
    <option value="May">May</option> 
    <option value="June">June</option> 
    <option value="July">July</option> 
    <option value="August">August</option> 
    <option value="September">September</option> 
    <option value="October">October</option> 
    <option value="November">November</option> 
    <option value="December">December</option> 
</select> 

<select name="DOBDay"> 
    <option> Day </option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
    <option value="8">8</option> 
    <option value="9">9</option> 
    <option value="10">10</option> 
    <option value="11">11</option> 
    <option value="12">12</option> 
    <option value="13">13</option> 
    <option value="14">14</option> 
    <option value="15">15</option> 
    <option value="16">16</option> 
    <option value="17">17</option> 
    <option value="18">18</option> 
    <option value="19">19</option> 
    <option value="20">20</option> 
    <option value="21">21</option> 
    <option value="22">22</option> 
    <option value="23">23</option> 
    <option value="24">24</option> 
    <option value="25">25</option> 
    <option value="26">26</option> 
    <option value="27">27</option> 
    <option value="28">28</option> 
    <option value="29">29</option> 
    <option value="30">30</option> 
    <option value="31">31</option> 
</select> 

<select name="DOBYear"> 
    <option> Year </option> 
    <option value="2016">2016</option> 
    <option value="2015">2015</option> 
    <option value="2014">2014</option> 
    <option value="2013">2013</option> 
    <option value="2012">2012</option> 
    <option value="2011">2011</option> 
    <option value="2010">2010</option> 
    <option value="2009">2009</option> 
    <option value="2008">2008</option> 
    <option value="2007">2007</option> 
    <option value="2006">2006</option> 
    <option value="2005">2005</option> 
    <option value="2004">2004</option> 
    <option value="2003">2003</option> 
    <option value="2002">2002</option> 
    <option value="2001">2001</option> 
    <option value="2000">2000</option> 
    <option value="1999">1998</option> 
    <option value="1998">1998</option> 
    <option value="1997">1997</option> 
    <option value="1996">1996</option> 
    <option value="1995">1995</option> 
    <option value="1994">1994</option> 
    <option value="1993">1993</option> 
    <option value="1992">1992</option> 
    <option value="1991">1991</option> 
    <option value="1990">1990</option> 
    <option value="1989">1989</option> 
    <option value="1988">1988</option> 
    <option value="1987">1987</option> 
    <option value="1986">1986</option> 
    <option value="1985">1985</option> 
    <option value="1984">1984</option> 
    <option value="1983">1983</option> 
    <option value="1982">1982</option> 
    <option value="1981">1981</option> 
    <option value="1980">1980</option> 
    <option value="1979">1979</option> 
    <option value="1978">1978</option> 
    <option value="1977">1977</option> 
    <option value="1976">1976</option> 
    <option value="1975">1975</option> 
    <option value="1974">1974</option> 
    <option value="1973">1973</option> 
    <option value="1972">1972</option> 
    <option value="1971">1971</option> 
    <option value="1970">1970</option> 
    <option value="1969">1969</option> 
    <option value="1968">1968</option> 
    <option value="1967">1967</option> 
    <option value="1966">1966</option> 
    <option value="1965">1965</option> 
    <option value="1964">1964</option> 
    <option value="1963">1963</option> 
    <option value="1962">1962</option> 
    <option value="1961">1961</option> 
    <option value="1960">1960</option> 
    <option value="1959">1959</option> 
    <option value="1958">1958</option> 
    <option value="1957">1957</option> 
    <option value="1956">1956</option> 
    <option value="1955">1955</option> 
    <option value="1954">1954</option> 
    <option value="1953">1953</option> 
    <option value="1952">1952</option> 
    <option value="1951">1951</option> 
    <option value="1950">1950</option> 
    <option value="1949">1949</option> 
    <option value="1948">1948</option> 
    <option value="1947">1947</option> 
</select> 




    <tr> 
     <td>Email*</td> 
     <td>Confirm Email*</td> 
    </tr> 


    <tr> 
     <td><label> 
     <input type="text" name="txtemail" id="txtemail" class="info" onchange="ValidateEmail(txtemail)" /> 
     <td><label> 
     <input type="text" name="txtemail2" id="txtemail2" class="info" onchange="ValidateEmail2(txtemail2)"/> 
     </label></td> 
    </tr> 


    <tr> 
     <td>Password*</td> 
     <td>Confirm Pasword*</td> 
    </tr> 


    <tr> 
     <td><label> 
     <input type="password" name="txtpassword" id="txtpassword" class="info"/> 
     <td><label> 
     <input type="password" name="txtpassword2" id="txtpassword2" class="info"/> 
     </label></td> 
    </tr> 


    <td colspan="2" style="font-size:12px">**Passwords must be at least 8 characters in lenght.</td> 
    </tr> 

    <tr> 
    <td>&nbsp;</td> 
    </tr> 


     <tr> 
     <td colspan="2"> 
     <label> 
      <input type="checkbox" name="terms" value="terms" id="terms" /> 
      I agree to the Terms and Conditions</label> 
     </td></tr> 
     <br><br><br> 
     <tr> 
     <td colspan="2"><label> 
      <input type="checkbox" name="notify" value="notify" id="notify" /> 
      I want to receive notifications by text/email about new products in stock.</label> 
      </td> 
    </tr> 


    <tr> 
    <td>&nbsp;</td> 
    </tr> 

    <tr> 
    <td><label> 
     <input type="submit" name="Login" id="Login" value="Login" onclick="checkdetails()" /> 
    </label></td> 
    <td><label> 
     <input type="reset" name="Reset" id="Reset" value="Reset" /> 
    </label></td> 
    </tr> 

    <tr> 
    <td>&nbsp;</td> 
    </tr> 
    </table> 
</form> 
+0

использовать это для остановки представить, если есть ошибка (несильно Validate() { Ретур ложь; }! $ ("#yourform") .submit (функция (событие) { если (проверить()) event.preventDefault(); });) –

ответ

3

это лучше использовать обязательный атрибут html5!

<input type="text" name="input" required > 
+0

Не все браузеры поддерживают атрибут 'required'. –

+0

Никогда не слышал об этом атрибуте в колледже. Я новичок. Это принесло чудеса благодаря миллиону! –

+0

http://www.w3schools.com/tags/att_input_required.asp – Meshredded

0

возвращение ложным; должен помешать ему выполнить его действие.

<form name="testForm" onsubmit="return validate();"> 

<script type="text/javascript"> 
function validate() 
{ 
    if(check if your conditions are not satisfying) 
    { 
    alert("validation failed false"); 
    returnToPreviousPage(); 
    return false; 
    } 

    alert("validations passed"); 
    return true; 
} 
</script> 

Однако, как указано в ответе выше, требуемым атрибутом html5 является наилучшая практика. Однако вам нужно будет рассмотреть не просто пустые поля. Например, нужно будет регулярным выражение проверить электронную почту поле и т.д.

http://www.html5-tutorials.org/form-validation/validating-email/

Смежные вопросы