2013-03-21 3 views
0

У меня есть форма с этим валидацией javascript. Js проверяет, выбрано ли значение. Если отправляются оба варианта выпадающего списка, выбранные формы.Форма, отправленная после выбора

Но отправьте нерабочее время. Что не так?

Спасибо всем ;-)

<script type="text/javascript"> 
$(document).ready(function(){ 
$("#submit").click(function (e) { 
    if($('#species').find(":selected").val()===""){ 
    //alert("empty"); 
    $("#msg1").html("Required"); 

    }  
    if($('#species2').find(":selected").val()===""){ 
    //alert("empty2"); 
    $("#msg2").html("Requires"); 

    } 
    e.preventDefault() 
}); 
}); 
</script> 

HTML:

<form method="post" action="send.php"> 
<label for="species" id="bobo">*Species:</label><br /> 

<div id="msg1"></div> 
<select id="species" name="species" size="1"> 
<option value="">Please choose a species</option> 
<option value="21">Chicken</option> 
<option value="28">Turkey</option> 
</select> 

<br /> 

<div id="msg2"></div> 
<select id="species2" name="species2" size="1"> 
<option value="">Please choose a species2</option> 
<option value="21">Chicken</option> 
<option value="28">Turkey</option> 
</select> 

<br /> 


<input id="submit" type="submit" value="Submit"> 
</form> 
+0

когда вы говорите, что вы не работаете ... что вы имеете в виду? что говорит ваша консоль? у вашей сетевой вкладки есть запрос, который действительно уволен? мы можем вам помочь, но вы должны помочь нам помочь – iAmClownShoe

+0

Я не могу отправить форму – user2123738

+0

Прежде всего. Это мало помогает. к счастью, я думаю, что знаю ответ – iAmClownShoe

ответ

2

Прежде всего, вы должны приложить событие submit к элементу form, поскольку его можно отправить без нажатия кнопки «Отправить».

т.е. (предполагая, что вы даете идентификатор form в форму):

$('#form').submit(function(e) { ... }); 

Во-вторых, когда вы звоните e.preventDefault(), он отменяет действие, таким образом, не заполнив форму.

Поместите e.preventDefault() в if заявлении, если есть ошибка, поэтому только вызывается, если есть ошибка.

+0

Я сказал: «(при условии, что вы даете идентификатор формы своей форме)». Я не хотел, чтобы он привязывал его ко всем формам! – CWSpear

+0

Ooooh - hahaha извините за это :) Я удалил комментарий –

+0

CWSPear, большое спасибо. Работал как шарм !!! – user2123738

0

Вы забыли $("form").submit() вызов после проверки того, что два значения выбраны.

Другими словами, вы никогда не делали звонок, вы отправляете форму. Вы должны поместить это право после последней проверки и переместить e.preventDefault() в первую строку в теле функции клик-обработчика.

0

Ваша кнопка отправки в вашем html - это то, что запустит httprequest для вашего действия. но в вашем javascript вы используете e.preventDefault(). это предотвратит отправку данных по умолчанию в формате html по умолчанию. Вам нужно будет использовать ajax, если вы хотите сначала запустить проверку javascript, а затем отправить форму после ее проверки. В противном случае кнопка отправки автоматически отправит все, что у вас есть, в форму и перенаправит вас на действие, определенное в элементе html.

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