1

私はフォームとJavascriptが初めてなので、ご容赦ください。

次のようなフォームがあります。

<form method="post" action="control" name="myform">
<input type="submit" name="Name" value="Do A"/>
<input type="submit" name="Name" value="Do B" />
<input type="submit" name="Name" value="Do C" />
<input type="submit" name="Name" value="Close" />
</form>

これを変更して 2 つのボタンがあり、外部条件に応じて JavaScript を使用してフォームが送信されるようにする必要があるため、次のようにします。

<form method="post" action="control" name="myform">
<script>
function submitForm(form){
    if(someConditionA){
        submit the form so that the script performs same action as if the button Do A had been clicked
    } if (someConditionB){
        submit the form so that the script performs same action as if the button Do B had been clicked
    } if (someConditionC){
        submit the form so that the script performs same action as if the button Do C had been clicked
    }
}

function closeForm(form){
    window.close();
}
</script>
<button name="doAction" onClick="SubmitForm(this.form)">Do Action<\button>
<button name="close" onClick="SubmitForm(this.form)">Close<\button>
</form>

関数 submitForm を実装するにはどうすればよいですか?

ありがとう

4

4 に答える 4

1

元の送信ボタンと同じ名前の隠しフィールドを追加します。

<input type="HIDDEN" name="Name" value=""/>

条件に基づいてそのフィールドの値を設定します。

function submitForm(form){
    if(someConditionA){
        form.Name.value = "Do A";
    } if (someConditionB){
        form.Name.value = "Do B";
    } if (someConditionC){
        form.Name.value = "Do C";
    }
    form.submit();
}

新しい [閉じる] ボタンを次のように変更します。

<button name="close" onClick="this.form.Name.value='Close';this.form.submit();">Close<\button>

私はこれをテストしていないので、間違いが 1 つか 2 つ含まれている可能性がありますが、それが一般的な考え方です。(「this.form」の+1、それについて知っている人はあまりいません。いいですね。)

于 2012-08-10T15:04:16.103 に答える
0

そうですね、送信ボタンの名前を変えるだけでいいのです。

<form method="post" action="control" name="myform">
    <input type="submit" name="SubmitA" value="Do A"/>
    <input type="submit" name="SubmitB" value="Do B" />
</form>

このようにして、送信時に、サーバーはどの送信がクリックされたかを区別できます。

于 2012-08-10T15:03:04.217 に答える
0

私の質問に対する答えを見つけました:

それを行う方法は、隠しフィールドを持つことです:

<input type="hidden" name="Name" value=""/>

次に、関数で、この非表示フィールドがそれぞれのボタンと同じ値になるように設定します。

于 2012-08-10T14:53:17.350 に答える
-1

問題が正しいかどうかわかりませんが、送信ボタンでクリックイベントを作成しないのはなぜですか? お気に入り

$('#mysendbtn').click(function(){ ...do A });
于 2012-08-10T14:51:35.873 に答える