3

「クリーン」な送信、つまりフォーム フィールドから非表示の div をすべて削除した後に呼び出される送信を実行しようとしています。

これは私がより頻繁に使用する機能であるため、コードを拡張部分に移動しました。

$.fn.extend({   
  bindCleanSubmit: function() {
    $(this).submit( function(event) {
      event.preventDefault();
      $(this).find("div:hidden").remove();
      console.log("trying to commit...");

      return true;
    });
  }
}); 

これで、すべての div が削除され、コンソール イベントがトリガーされますが、最後に送信が実行されませんでした。

あなたは今ここで問題を抱えていますか?

4

1 に答える 1

2

で何をしようとしているのかわかりませんがpreventDefault()、 から削除するとbindCleanSubmit()、非表示の div がフォームから削除され、正常に送信されます。したがって、次の html が与えられます。

<form id="myform" method="POST" action="/">
    <input type="text" name="displayedInput" value="1"/>
    <div style="display: none">
        <input type="text" name="hiddenInput" value="1"/>
    </div>
    <button type="submit">Submit</button>
</form>

...そして更新されたプラグイン:

$.fn.extend({   
  bindCleanSubmit: function() {
    $(this).submit( function(event) {
      $(this).find("div:hidden").remove();
      console.log("trying to commit...");
      return true;
    });
  }
}); 

$('#myform').bindCleanSubmit();

...displayedInput送信時に値のみがサーバーに送信myformされます。

于 2013-08-23T15:32:17.757 に答える