大家好我在提交表格时有一个Anchr标签,如下所示:
<form id="myForm" action="main/postdata">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br><br>
<a onclick="myFunction()" value="Submit form">click</a>
</form>
<script>
function myFunction()
{
document.getElementById("myForm").submit();
}
</script>
无论如何我可以在用户点击时附加一个附加值的POST数据,所以如果我有2个标签,我可以确定哪一个被点击了?例如:
<form id="myForm" action="main/postdata">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br><br>
<a onclick="myFunction()" value="Submit form">click</a> -- ? check which 1 was clicked?
<a onclick="myFunction()" value="Submit form">click 2 </a>
</form>
我知道使用按钮来做这件事会更容易 - 但我正在寻找JS / JQUERY解决方案,如果有请的话,非常感谢!
答案 0 :(得分:1)
<form id="myForm" action="main/postdata">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br><br>
<input type="hidden" value="" id="check_value1" name="check_value1">
<input type="hidden" value="" id="check_value2" name="check_value2">
<a onclick="document.getElementById('check_value1').value= 'yes';myFunction()" value="Submit form">click1</a>
<a onclick="document.getElementById('check_value2').value= 'yes';myFunction()" value="Submit form">click2</a>
</form>
function myFunction()
{
document.getElementById("myForm").submit();
}
当您在服务器端获得POST
个数据时,检查点击了哪一个.. check_value1
或check_value2
中的某个值的值为“是”
答案 1 :(得分:0)
您可以更改其中的功能:
<a onclick="myFunctionOnClick()" value="Submit form">click</a> -- ? check which 1 was clicked?
<a onclick="myFunctionOnClick2()" value="Submit form">click 2 </a>
答案 2 :(得分:0)
解决此问题的最佳方法是使用提交按钮而不是JavaScript提交表单。您可以设置提交按钮的样式以便随意查看。
<input type="submit" name="something" value="click">
<input type="submit" name="something" value="click 2">
然后检查服务器上something
的值。只有点击的提交按钮才会成功。
(更糟糕的)解决方案是在提交表单之前使用JavaScript向表单添加隐藏的输入。
<a onclick="myFunction(1)" value="Submit form">click</a> -- ? check which 1 was clicked?
<a onclick="myFunction(2)" value="Submit form">click 2 </a>
function myFunction(id) {
var frm = document.getElementById("myForm");
var input = document.createElement("input");
input.type="hidden";
input.name="something";
input.value=id;
frm.appendChild(input);
frm.submit();
}
答案 3 :(得分:0)
您可以使用隐藏字段,在点击时更改其值,然后提交表单。您还可以将参数作为值传递给函数。
所以你的HTML,就像这样:
<form id="myForm" action="myfile.php">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<a onclick="myFunction('submit1')">click</a>
<a onclick="myFunction('submit2')">click 2</a>
<input type="hidden" name="myclick">
</form>
你是这样的jQuery代码:
<script>
function myFunction(btnValue) {
$("input[name='myclick']").val(btnValue);
$("myForm").submit();
}
</script>
此外,我更改了<form action>
值,因为我不了解您要通过将其设置为action="main/postdata"
来实现的目标。行动应该指向目的地。