我在使用以下代码时遇到了一些麻烦。我有一个表格上有几个按钮。第一个按钮的类为ButtonAdditionalDelete
。单击它时,它应检查对象是否有数据标记,然后将标记的值设置为隐藏变量。最后,它应该单击id为saveAnswerButton
的按钮。
但是,当表单提交回服务器时,该按钮中的action
变量不存在。有什么想法吗?
<form action="/Area/Controller/Action/id?otherField=value" method="post">
@Html.HiddenFor(model => Model.SelectedSequenceNumber)
<button class="ButtonAdditionalDelete" data-sequence-number="1">Delete</button>
<button name="action" value="AnswerEdit" id="saveButton">Save</button>
<button name="action" value="AnswerEditAndAdd">Save and Add New</button>
<button name="action" value="AnswerEditAndReturn">Save and Return</button>
</form>
<script type="text/javascript">
$(".ButtonAdditionalDelete").on("click", function () {
var sequenceNumber = $(this).data("sequenceNumber");
$("#SelectedSequenceNumber").val(sequenceNumber);
$("#saveButton").click();
});
</script>
答案 0 :(得分:0)
不应该
$("#saveButton").click();
应该是
$("#saveAnswerButton").click();
答案 1 :(得分:0)
这是一项安全措施。只有在人为点击时才会发送按钮的名称和值。
你必须保留一个名为action的隐藏输入,然后在模拟表单提交之前更改它的值:
<form method="post">
<input id="hiddenAction" name="action" type="hidden" value="">
<button class="ButtonAdditionalDelete" data-sequence-number="1">Delete</button>
<button name="action" value="AnswerEdit" id="saveAnswerButton">Save</button>
<button name="action" value="AnswerEditAndAdd">Save and Add New</button>
<button name="action" value="AnswerEditAndReturn">Save and Return</button>
</form>
<script type="text/javascript">
$(".ButtonAdditionalDelete").on("click", function () {
var sequenceNumber = $(this).data("sequenceNumber");
$("#SelectedSequenceNumber").val(sequenceNumber);
$("#hiddenAction").val($("#saveAnswerButton").val());
$("#saveAnswerButton").click();
});
</script>
答案 2 :(得分:-3)
嗯,您使用的是 sequenceNumber ,但您的属性名为 sequence-number 。