在我的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();
});
但是当我尝试将这个标志改为多行时,我不能。它只适用于一行。我想因为输入的默认值而存在。我该如何解决?谢谢。
答案 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();
});