【发布时间】:2018-06-07 07:46:44
【问题描述】:
我有一个页面,上面有多个表单。每个表单都有两个提交按钮和一个包含 ID 的隐藏输入字段。
当用户单击其中一个提交按钮时,我需要将单击的提交按钮的值连同隐藏输入字段的值与表单提交一起发送。
这是我的页面的示例:
<form id="options">
<input type="hidden" value="104">
<input type="submit" onclick="this.form.submited=this.value;" value="Delete">
<input type="submit" onclick="this.form.submited=this.value;" value="Reply">
</form>
<form id="options">
<input type="hidden" value="44">
<input type="submit" onclick="this.form.submited=this.value;" value="Delete">
<input type="submit" onclick="this.form.submited=this.value;" value="Reply">
</form>
<form id="options">
<input type="hidden" value="39">
<input type="submit" onclick="this.form.submited=this.value;" value="Delete">
<input type="submit" onclick="this.form.submited=this.value;" value="Reply">
</form>
<script>
$(document).on("submit", "#options", function(e) {
e.preventDefault();
console.log(this.submitted) // gets the value of the submit button
});
</script>
目前我只能将点击提交按钮的值与表单提交一起发送,而不是隐藏输入字段的值。虽然我知道我可以使用 onclick="this.form.submited=this.previousElementSibling.value;" 来获取 ID,但这意味着我无法获取单击的提交按钮的值。
【问题讨论】:
-
不要多次使用同一个
id。id应该是唯一的。据我所知,这显然是一个XY problem。你让这种方式比它需要的更复杂。此外,隐藏的输入值已发送。它们是隐藏的,而不是服务器。 -
等一下,您是否编辑了代码以删除
name属性?我说的是id="options"。您需要name="id",以便在服务器端访问数据。
标签: javascript html forms