AJAX を使用してフォームを送信するコンテキストで使用する次のコードを開発しました。これはまさにあなたのケースではありませんが、同じコードで<input type="submit">
値が送信されます。
function submit_click() {
var $input = $(this);
var name = $input.attr('name');
if (typeof name == 'undefined') return;
var value = $input.attr('value');
var $form = $input.closest('form');
var $hidden = $('<input type="hidden" />').attr('name', name).attr('value', value);
$form.find('input[type=hidden][name="' + name + '"]').remove();
$form.append($hidden);
};
$(document).on('click', 'form.ajax input[type=submit]', submit_click);
in the form 要素を使用してclass="ajax"
、このコードをアクティブにします。必要に応じて変更できます。
それは何をしますか?クリックされた送信入力と同じ名前と値を持つ非表示のフォーム入力を作成します。そのため、後でプログラムによって投稿が行われると、値が適切に送信されます。
ああ、あなたは尋ねwhat could be preventing value from being passed
ました... 検証プラグインはフォームの送信をキャッチし、その処理を実行します。検証後、フォーム送信をトリガーします。これが発生すると、フォーム送信をトリガーしているのは要素のクリックではなくなります。<input>
プラグインの JavaScript コードです。そのため、" <input>
" クリック イベントは失われます。これが提出されない理由です。(意味がありますか? この説明が適切に書かれていない場合は、お知らせください。)