1

疑問に思っていたのですが、フォームに 2 つの入力を送信しています。1 つは名前を持っています:

<input name="_close" type="submit" id="myId" value="close">

そして、それをクリックすると、(JSで何かをした後)経由でフォームを送信します

$('#myForm').submit();

次に、サーバーコードで「_close」があるRequestかどうかをテストしますqueryが、そうではないようです。

私の質問は: クリックされた入力ボタンの名前をメソッドに保持させるjQuery方法、または次の Request で必要な追加のパラメーターを関数に手動で指定する方法はありますか?.submit().submit()

ありがとう。

4

2 に答える 2

2

それ以外の

$('#myForm').submit()

試す

$('#myId').click();

これにより、フォームの送信と同時に、どのボタンがフォームの送信をトリガーしたかを特定できます。

于 2012-07-13T10:11:04.043 に答える
2

送信ボタンとそれらがどのように渡されるかについてはわかりませんが、そうでない場合は、送信前のJavaScriptで同じ名前の非表示の入力に値を割り当てることができます。

私はあなたのために例を実行しました。

test.html

<form action="test.php" action="POST" >
    <input type="submit" name="submitButton" value="Click me to submit" />
</form>

test.php

<?php
    echo $_POST['submitButton'];
?>

これは反響します Click me to submit

次に、値を渡さないjqueryのsubmit関数を使用して別のテストを行いました。

その理由は、フォームに複数の送信ボタンがある可能性があるため、どの送信ボタンが押されたかをサーバー側でテストできるようにするためです。値を確認すると、フォームの送信に具体的に使用された値をテストできます。

外部入力を特定の送信ボタンとして使用して、その名前/値のペアがsubmit()jquery のフォームで呼び出す代わりにリクエストで渡されるようにするには、送信ボタン自体を選択して呼び出しますclick()。これにより、その特定の送信ボタンが使用されたことをフォームに伝え、その値をリクエストに設定します。

于 2012-07-13T09:49:56.373 に答える