2016-02-20 3 views
1

Привет, поэтому я читал, как проверять формы html, все мои клиентские стороны валидаторов работают с шаблонами и типами. Проблема в том, что я нажимаю кнопку, чтобы подтвердить, что проверка javascript не запускается. Существует мой код:Проверка формы на отправке не работает

<script language="javascript"> 

function validateForm() 
{ 
    var xa = document.forms["regform"]["password"].value; 
    var xb = document.forms["regform"]["password2"].value; 
    var xc = document.forms["regform"]["email"].value; 
    var xd = document.forms["regform"]["email2"].value; 
    if (xa == xb && xc == xd){ 
     return true; } 
    else{ return false; alert("Please enter a valid captcha code");} 
} 

$(document).ready(function(e) { 
    try { 
    $("body select").msDropDown(); 
    } catch(e) { 
    alert(e.message); 
    } 
    }); 

</script> 

им форма:

<form name="regform" onsubmit="return validateForm();" action="actions/register_acc.php" method="post"> 

<input type="password" name="password" class="input-style" required="required"> 
<input type="password2" name="password" class="input-style" required="required"> 

<input name="email" class="input-style" placeholder="[email protected]" required="required" pattern="[a-z0-9._%+-][email protected][a-z0-9.-]+\.[a-z]{2,4}$"> 
<input name="email2" class="input-style" placeholder="[email protected]" required="required" pattern="[a-z0-9._%+-][email protected][a-z0-9.-]+\.[a-z]{2,4}$"> 

<input type="submit" value="ok"> 

</form> 

Внутри формы я также имею следующие:

<select name="selectname" id="webmenu"> 
<option value="1">1</option> 
<option value="2">2</option> 
</select> 

И в голове этот:

<script src="js/msdropdown/jquery-1.3.2.min.js" type="text/javascript"></script> 
     <script src="js/msdropdown/jquery.dd.min.js" type="text/javascript"></script> 
+0

проверил Вы разработчиков консоли? Что значит - не работает? Вы не видите предупреждения - так что вы не будете, поскольку 'return false' останавливает любое другое выполнение функции. –

+0

Он всегда возвращает true –

+1

'password2' не является допустимым типом' input'. – Yass

ответ

1

Проблема заключается в самом методе validateForm, особенно в блоке else. Вы возвращаете false перед вызовом alert. Перемените два вызова, и вы увидите сообщение alert.

Для большей ясности я бы изменил сообщение в окне предупреждения, поскольку оно не имеет прямого отношения к полям, которые вы проверяете.

function validateForm() 
{ 
    var xa = document.forms["regform"]["password"].value; 
    var xb = document.forms["regform"]["password2"].value; 
    var xc = document.forms["regform"]["email"].value; 
    var xd = document.forms["regform"]["email2"].value; 
    if (xa == xb && xc == xd){ 
    return true; 
    } 
    else { 
    alert("Please enter a valid captcha code"); 
    return false; 
    } 
} 

Смотрите эту Fiddle

+0

Работал! Спасибо большое. –

+0

Добро пожаловать. – Yass

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