2017-07-18 5 views
0

を提出することはJQueryを使用した私は、ページ上の次の形式があります:私はフォームを送信するために、次のjqueryのスニペットを使用しようとしていますフォーム

<form action="/" method="post"> 
<select id="SelectedMonth" name="SelectedMonth"> 
<option>7/1/2017</option> 
<option>6/1/2017</option> 
</select> 
</form> 

を。 jqueryコードはフォームの外にあり、フォームはページ上の唯一のフォームです。

$("#SelectedMonth").change(function() { 
     alert(this.value); 
     $('form').submit(function (event) { 
     alert("Submitted"); 
     event.preventDefault(); 
     }); 
    }); 

最初の警告がトリガされ、選択された値が表示されますが、送信は実行されません。

これはかなり簡単ですが、うまくいかないようです。私は何が欠けていますか?

あなたは(したがって火に最初alert()を引き起こす)ドロップダウンで選択した要素を変更することができますが、ためですTIA

+0

このコード を削除**イベントのようなものでなければなりません。preventDefault(); ** – ravi2432

+0

@ ravi2432これは問題ではありません(そして、その行は 'alert()'の後に来ます)。問題は、フォームが最初に送信されることがないため、イベントが発生しないことです。 –

答えて

0

変更アクションとその空白 と変更機能、このような

$("#SelectedMonth").change(function() { 
    $('form').submit(); 
}); 

作り、それが問題.submit(関数(){})ではないが、実際に提出するということである「なぜそれが動作しない」に

0

は、あなたがフォームを送信するためのメカニズムを持っていないので、もう一つはしません。

submitボタンを追加してsubmitイベントがformになるようにする必要があります。

また、コードを持っている方法では、ドロップダウンで選択を最初に変更しない限り、submitイベントハンドラは実際には起動しません。あなたはおそらくその行動を望んでいません。 2つのイベントハンドラは、互いに独立して設定する必要があります。

$("#SelectedMonth").change(function() { 
 
    alert(this.value); 
 
}); 
 

 
$('form').submit(function (event) { 
 
    alert("Submitted"); 
 
    event.preventDefault(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action="/" method="post"> 
 
    <select id="SelectedMonth" name="SelectedMonth"> 
 
    <option>7/1/2017</option> 
 
    <option>6/1/2017</option> 
 
    </select> 
 
    <button type="submit">Submit</button> 
 
</form>

0

あなたは、changeイベントの内側に提出したイベントを入れているイベント

$("#SelectedMonth").change(function() { 
     alert(this.value); 
    }); 

$('form').submit(function (event) { 
     event.preventDefault(); 
alert("Submitted"); 
     }); 

を提出しようとも送信ボタンを追加するには、日付chanegに提出したい場合は、次にしてみてくださいこの

$("#SelectedMonth").change(function() { 
      $('form').trigger('submit'); 
     }); 

    $('form').submit(function (event) { 
      event.preventDefault(); 
    alert("Submitted"); 
      }); 
0

答えに動作しますsubmit handlerをフォームが、追加 - フォームが

This method is a shortcut for .on("submit", handler) in the first variation, and .trigger("submit") in the third.

Description: Bind an event handler to the "submit" JavaScript event, or trigger that event on an element.

を提出されるときに実行される機能を

関数を渡すと、BINDハンドラーになります。 paramsなしでトリガすると、実際にフォームが送信されます。

フォームを送信するボタンは必要ありません。

だから、実際のコードでは、この

$('form').submit(function (event) { 
    alert("Submitted"); 
    event.preventDefault(); 
}); 
$("#SelectedMonth").change(function() { 
    $('form').submit(); 
});