1

ページ上の多数のフォームの 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;
}

しかし、それは機能していません。誰かが私を正すことができますか?

4

1 に答える 1

0

すべてのブラウザーで非表示の入力を変更できるかどうかはわかりません。また、jquery 内に .value() メソッドがないのではないかと心配しています$j("[id^=button]").val(buttonValue);:).attr('value', buttonValue);

于 2013-02-25T11:01:56.827 に答える