1

私はこのようなフォームを持っています:

<form id="myform" action="something.php" method="post">
<input type="text" name="first_name" /><br />
<input type="button" id="submit" value="Send" />
</form>

JavaScript と jQuery でいくつかのプロセスから成功メッセージを受け取った後、このフォームを送信したいと考えています。だから私はこのようにしました:

$(document).ready(function(e) {
  $('#submit').click(function(event){
    event.preventDefault();

    $.post('process/process.php',
          {
              // I passed data here
          },
          function(data) {
              if (data.result == '1') {
                  $('#myform').submit();
              } else {
                  alert('Error #'+data.result+' occurred!');
              }
          },
          'json'
    );
  });
});

しかし、 を取得した後でもdata.result == '1'、送信フォームが機能しません。ここで何が問題ですか?


編集:

jQuery を次のように変更しました。

$(document).ready(function(e) {
  $('#submit').click(function(event){
    $('#myform').submit();
  )};
)};

したがって、現在条件はありませんが、フォームは送信されませんでした。

4

2 に答える 2

5

のjQueryドキュメントから.submit()

その他の注意事項:

フォームとその子要素では、送信、長さ、メソッドなど、フォームのプロパティと競合する入力名または ID を使用しないでください。名前の競合により、混乱を招く障害が発生する可能性があります。ルールの完全なリストと、これらの問題についてマークアップを確認するには、DOMLint を参照してください。

2 番目の入力の id の名前を に変更しsubmitFormます。

作業フィドル: http://jsfiddle.net/WvSdX/

于 2012-08-22T08:55:07.710 に答える
0

ここは価値観の問題だと思います。これが事実であるかどうかを判断するためのより良い方法を提供するために、一時的にコールバックをこれに変更して試していただけますか?

$(document).ready(function(e) {
    $('#submit').click(function(event){
      event.preventDefault();

      $.post('process/process.php',
          {
              // I passed data here
          },
          function(data) {
               $('#myform').submit();   
          },
          'json'
    );
  });
});

フォームが送信された場合、jQuery 部分に問題はありません。post() 操作から結果を正しく取得することが問題です。

試してみて、うまくいくかどうか教えてください。

于 2012-08-22T07:51:48.070 に答える