用jQuery更改隐藏输入的值并存储它

时间:2013-08-13 19:37:56

标签: c# jquery asp.net-mvc-3 razor

在我的ASP.NET MVC 3站点中,有一个包含商品的表。每行都有隐藏的输入字段,其中包含bool值。

<input name="@string.Format("items[{0}].IsStriked", i)" type="hidden" value="false" />

每行都有按钮点击处理程序:

$(".shoppingcart a.strike").live("click", function (e) {
        e.preventDefault();
        var $button = $(this);
        var $tr = $button.parents("tr:first");
        if ($("input[name$='IsStriked']", $tr).val() == "false") {
            var $isStriked = $("input[name$='IsStriked']", $tr).val("true");
        }
        else {
            var $isStriked = $("input[name$='IsStriked']", $tr).val("false");
        }
        var $form = $button.parents("form");
        $form.submit();
    });

但是当我尝试将这个标志改为多行时,我不能。它只适用于一行。我想因为输入的默认值而存在。我该如何解决?谢谢。

1 个答案:

答案 0 :(得分:0)

虽然我没有更改任何功能,但我更新了绑定以使用最新的绑定方法并简化了处理程序中的逻辑。试一试。

$('.shoppingcart').on('click', 'a.strike', function (e) {
    e.preventDefault();

    var $button = $(this),
        $tr = $button.closest('tr'),
        $input = $tr.find('input[name$="IsStriked"]');

    $input.val($input.val() == 'false' ? 'true' : 'false');

    $button.parents("form").submit();
});