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>
4

3 に答える 3

2

まず、[送信]ボタンをクリックせずにフォームを送信できるためsubmit、要素にイベントを添付する必要があります。form

すなわち(あなたがあなたのフォームにIDを与えると仮定してform):

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

次に、を呼び出すとe.preventDefault()、アクションがキャンセルされ、フォームが送信されません。

エラーが発生した場合e.preventDefault()ifステートメントを入力するため、エラーが発生した場合にのみ呼び出されます。

于 2013-03-21T16:50:33.660 に答える
0

$("form").submit()2つの値が選択されていることを確認した後、呼び出しを忘れました。

つまり、フォームを送信したときに電話をかけたことはありません。これを最後のチェックの直後に置きe.preventDefault()、クリックハンドラー関数の本体の最初の行になるように移動する必要があります。

于 2013-03-21T16:50:19.330 に答える
0

HTML の送信ボタンは、アクションに対して httprequest を起動するものです。しかし、あなたのJavaScriptでは使用しますe.preventDefault()。これにより、html のデフォルトの動作でシリアル化されたフォーム データが送信されなくなります。最初に JavaScript 検証を実行し、検証後にフォームを送信する場合は、ajax を使用する必要があります。それ以外の場合、送信ボタンはフォームにあるものを自動的に送信し、html 要素で定義されているアクションにリダイレクトします。

于 2013-03-21T16:51:19.410 に答える