ページ上の多数のフォームの 1 つを処理する AJAX スクリプトがあります。各ページには PHP ループによって生成されるフォームが多数あるため、変数 $form を使用して、さまざまな入力フィールドの ID に連番が追加されます。
各フォームには、フォームの処理時にさまざまなアクションをトリガーするために、非表示の入力フィールドを使用して変数として渡したい、異なる値を持つ2つの送信ボタンがあります。
<input type='hidden' id='button$form' value='' />
<button type='submit' class='submit_s' value='view' style='margin-right:20px' onclick='return setHiddenButtonValue(this.value);'>View</button>
<button type='submit' class='submit_s' value='email' style='margin-right:20px' onclick='return setHiddenButtonValue(this.value);'>Email</button>
フォームからのデータは、フォームの AJAX スクリプトを使用して処理されます。
var form_data = {
name: $jform.find("[id^=name]").val(),
date: $jform.find("[id^=date_hidden]").val(),
time: $jform.find("[id^=time]").val(),
}
したがって、これに隠しボタン入力のエントリを追加できます。つまり、次のようになります。
button: $jform.find("[id^=button]").val(),
そして、次のように使用します。
if (form_data.button == 'email') {
$jform.fadeOut(800);
}
私が解決できないのは、変数を非表示のボタン入力に渡す方法です。ご覧のとおり、送信ボタンのそれぞれに onclick イベントを追加しました。次に、jQuery に次のコードを追加するとうまくいくことを期待していました。
function setHiddenButtonValue(buttonValue)
{
$j("[id^=button]").value = buttonValue;
return true;
}
しかし、それは機能していません。誰かが私を正すことができますか?