jQuery按钮单击不提交按钮值

时间:2015-03-24 19:25:40

标签: javascript jquery

我在使用以下代码时遇到了一些麻烦。我有一个表格上有几个按钮。第一个按钮的类为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>

3 个答案:

答案 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