我有一個視圖,顯示一些圖像複選框,允許用戶決定是否保存每個圖像。我隱藏了複選框,而是使用圖像頂部的複選標記或X來表示它是否被選中。這一切工作正常。但是,複選框的值不會更改 - 它始終保持未選中狀態。MVC 3選擇和取消選擇使用jQuery的複選框
這裏是我的視圖代碼:
<div class="imgCheckBoxes">
<label for="MyImages_Cover" class="imgCheckBox">
<img src="http://example.com/image.jpg" alt="cover" />
</label>
@Html.CheckBoxFor(m => m.MyImages.Cover, new { @class = "check-box hideChkBx chkForImg" })
</div>
這使得下面的HTML:
<div class="imgCheckBoxes">
<label for="MyImages_Cover" class="imgCheckBox">
<img src="http://example.com/image.jpg" alt="cover" />
</label>
<input class="check-box hideChkBx chkForImg" id="MyImages_Cover"
name="MyImages.Cover" type="checkbox" value="true" />
<input name="MyImages.Cover" type="hidden" value="false" />
</div>
我的jQuery代碼如下(刪除了一些代碼處理定位等):
var closeBtn = '../Content/img/close.png';
var okBtn = '../Content/img/ok.png';
$(document).ready(function (e) {
if ($('.imgCheckBox').html() != null && $('.imgCheckBox').html() != '') {
initializeOkCloseImg();
}
$('.chkForImg').change(function (e) {
initializeOkCloseImg();
});
});
function initializeOkCloseImg() {
var chkImg = '';
$('.chkForImg').each(function (index, element) {
chkImg = closeBtn;
if ($(this).is(':checked')) {
chkImg = okBtn;
}
});
}
一切工作正常在切換圖像表示檢查/ unc hecked,但是當表單發佈時,複選框始終爲false。我在這裏錯過了什麼?
在表單發佈的控制器操作中,值被保存到數據庫中,然後用戶被重定向到GET操作,該操作將檢索模型並將其返回給視圖。我的控制器動作和一切工作正常,因爲其他信息正在保存並正確顯示,其jQuery似乎是問題。 – HTX9