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>

我需要更改它以便有两个按钮,并且表单是使用依赖于一些外部条件的 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>

我没有测试过这个,所以它可能包含一两个错误,但这是一般的想法。(为“this.form”+1,没有多少人知道这一点,很好。)

于 2012-08-10T15:04:16.103 回答
0

刚刚想出了我的问题的答案:

这样做的方法是有一个隐藏字段:

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

然后在函数中,将此隐藏字段设置为与相应按钮具有相同的值。

于 2012-08-10T14:53:17.350 回答
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 回答
-1

不确定我是否正确解决了您的问题,但是您为什么不在这些提交按钮上进行单击事件?像

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