0

jQueryでフォームを送信する

作品

         $('#testform').submit();

動作しません

              $('#testform').submit(function () {
                 alert('test1');
                return true;
              });

これは単なる例ですが、フォームを送信する前に何かをしたいことがあります。たとえば、次を使用してフォームを送信します$.POST

アップデート:

両方を保持する$.POSTと、フォームは依然として ajax なしで従来の方法で送信されるため、値はありません...

                    $("#testform").submit(function() {
                            $.post('/myajaxcontroller', function(data) {
                                $('#result').html(data);
                            });
                    });
                    $("#testform").submit();   
4

3 に答える 3

1

最初の例はフォームを送信します。2番目の例では、フォームを送信するときのイベントハンドラーを設定します。両方が必要です。

非同期にする必要がある場合はreturn false、送信ハンドラーから強制的に送信されるため、フォームは送信されません。AJAXコールバックでフォームを送信できます。

 // Send an AJAX request before submitting the form
 $('#testform').submit(function () {
     var form = this;
     $.post('/myajaxcontroller', function(data) {
         $('#result').html(data);
         // everything is good, submit the form on our own
         if (data.looksGood) {
             form.submit();
         }
     });

     return false;
 });
于 2012-10-16T03:37:05.707 に答える
0
$('#testform').submit();

この行はすぐに送信を呼び出します(送信は現在実行中です!)

$('#testform').submit(function () {

    // Do some stuff

    return true;
});

この行は、フォームの送信前に呼び出されるコールバック関数のみを定義します。ドキュメントに注意する必要があります。jQuery関数はパラメーターの有無にかかわらず同じ仕事をしません。

于 2012-10-16T03:40:19.343 に答える
0

デフォルトの送信を停止するには、デフォルトの防止を使用します

  $("#testform").submit(function(e) {
       e.preventDefault()  //< ---- Add this
       $.post('/myajaxcontroller', function(data) {
       $('#result').html(data);
        });
  });

  $("#testform").submit();   
于 2012-10-16T04:58:33.890 に答える