karim79の回答に基づいて:
$("input[type=submit], input[type=button], button").click(function(e) {
var self= $(this),
form = self.closest(form),
tempElement = $("<input type='hidden'/>");
// clone the important parts of the button used to submit the form.
tempElement
.attr("name", this.name)
.val(self.val())
.appendTo(form);
// boom shakalaka!
form.submit();
// we don't want our temp element cluttering up the DOM, do we?
tempElement.remove();
// prevent default since we are already submitting the button's form.
e.preventDefault();
});
UPDATE:
私は上記のコードを実現し、あなたが探しているものはおそらくありません:あなたがCであれば
エイリングフォーム要素自体($("form").submit();
)あなたはこのようなものが必要になりますに提出:右のフォームが送信される前に、DOMに最初ボタン要素の名前と値を追加します
$("form").submit(function(){
var form = $(this);
$("input[type=submit], input[type=button], button", form).eq(0).each(function(){
var self= $(this),
tempElement = $("<input type='hidden'/>");
// clone the important parts of the button used to submit the form.
tempElement
.attr("name", this.name)
.val(self.val())
.appendTo(form);
});
});
(私はしませんよデフォルトブラウザの動作がここにあることを確認してください)。これによりDOMからtempElement
が削除されないことに注意してください。エラーがあり、フォームが送信されない場合、要素は残っています。これを処理しないと問題が発生します。
送信ボタンにIDを組み込んで、jQuery /サーバー側のチェックで保存/削除を区別する – benhowdle89
ありがとうございますが、これは問題ではありません。私は送信ボタンの値を持っています。 jquery.submit()を使わないとうまく動作します。 –
この問題は、 'serialize()'メソッドにも存在します。サブミットボタンには通常の属性がすべて設定されていても、認識されません。私はそれらを手動で処理しなければならなかった。 –