0

私の知る限り、次のことは不可能です。そうでない場合は、jquery の明らかな制限です。

送信ボタンが 2 つある HTML フォームが必要です。フォームを送信して、送信に使用されたボタンを検出することはできません。

1 つのアプローチは、click(function() を使用することですが、そうすることにより、フォームのフィールドへのアクセスが失われ、フォームを参照できなくなります。実際、このアプローチは、フォームのように見えるリンクを使用していますが、そうではありません!

私にはそのような基本的なニーズのように思えますが、どうしてこれをサポートできないのでしょうか。多くの場合、フォームには 2 つの送信オプションがあります。たとえば、「送信」と「編集」です。どちらのオプションも、送信時とユーザーがフォーム データを送信したときに異なるアクションを必要としますか? どうしてこれが不可能なのですか?

ありがとう

4

3 に答える 3

1

ほんの一例です。

<form action="action.php" method="post"> 
Enter a number: <input type="text" name="number" size="3"> <br>
<input type="submit" name="add" value="Add 10">
<input type="submit" name="subtract" value="Subtract 10"> 
</form>

<?php

// check which button was clicked
// perform calculation
if ($_POST['add'])
{
    echo $_POST['number'] . " + 10 = " . ($_POST['number']+10); 
} else if ($_POST['subtract']) {
    echo $_POST['number'] . " - 10 = " . ($_POST['number']-10); 
}

?>
于 2013-03-07T03:26:55.950 に答える
0

サーバーで簡単なテストを行いました。

<form method="POST" action="/test/post.php" target="_blank" id="form">
    <input type="search" name="q" value="WTF" />
    <input type="submit" name="b1" value="Search" />
    <input type="submit" name="b2" value="Find" />
</form>
<button type="button" onclick="id('form').submit();">Go</button>

post.php単にprint_r($_POST);. 結果は次のとおりです。

  • 押すSearch

    Array
    (
        [q] => WTF
        [b1] => Search
    )
    
  • 押すFind

    Array
    (
        [q] => WTF
        [b2] => Find
    )
    
  • 押し込む:[Enter]_<input type="search">

    Array
    (
        [q] => WTF
        [b1] => Search
    )
    
  • <button>外側を使用する:

    Array
    (
        [q] => WTF
    )
    
于 2013-03-07T03:36:17.277 に答える
0

2 つの送信ボタンで何をしようとしているのか完全にはわかりません。しかし、どのボタンが押されたかに基づいて、必要なフィールドのデータがあれば、単純なロジックを使用してどのボタンがクリックされたかを検出し、jQuery を使用して ID で各フォーム フィールドにアクセスすることは完全に可能です。

$('#btn1').click(function() { $('#field1').doSomething() });
$('#btn2').click(function() { $('#field1').doSomething() });
于 2013-03-07T03:23:16.887 に答える