在我的模型中,我有兩個布爾屬性,Approved和Rejected。我希望它們作爲單選按鈕或MVC視圖上的複選框,但一次只想選擇一個。MVC中的兩個複選框,但一次只允許一個複選框
目前我的看法是這樣的:
<div class="form-group">
@Html.LabelFor(model => model.Approved, htmlAttributes: new {@class = "control-label col-md-2"})
<div class="col-md-2">
<div class="checkbox">
@Html.EditorFor(model => model.Approved, new { onclick="SingleCheckbox(this)" })
@Html.ValidationMessageFor(model => model.Approved, "", new {@class = "text-danger"})
</div>
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Rejected, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-2">
<div class="checkbox">
@Html.EditorFor(model => model.Rejected, new { onclick="SingleCheckbox(this)" })
@Html.ValidationMessageFor(model => model.Rejected, "", new { @class = "text-danger" })
</div>
</div>
</div>
和JavaScript看起來像這樣:
SingleCheckbox = function(rb) {
debugger;
var id = rb.id, uncheck;
if (id == 'Approved') {
uncheck = document.getElementById('Rejected');
} else {
uncheck = document.getElementById('Approved');
}
};
但是,當我檢查的元素,它甚至沒有onclick事件。
我已更新我的代碼以反映您的建議(請參閱上文),但仍然存在相同的問題。問題是,當我檢查元素複選框輸入沒有一個onclick事件。
這裏呈現的HTML:
<div class="form-group">
<label class="control-label col-md-2" for="Approved">Approved</label>
<div class="col-md-2">
<div class="checkbox">
<input class="check-box" id="Approved" name="Approved" type="checkbox" value="true"><input name="Approved" type="hidden" value="false">
<span class="field-validation-valid text-danger" data-valmsg-for="Approved" data-valmsg-replace="true"></span>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-2" for="Rejected">Rejected</label>
<div class="col-md-2">
<div class="checkbox">
<input class="check-box" id="Rejected" name="Rejected" type="checkbox" value="true"><input name="Rejected" type="hidden" value="false">
<span class="field-validation-valid text-danger" data-valmsg-for="Rejected" data-valmsg-replace="true"></span>
</div>
</div>
</div>
這是您的原始問題的附註,但我認爲如果您使用單選按鈕,則可以解決您的問題並獲得更好的用戶體驗。複選框意味着允許多個選擇(即它們通常包含諸如_「檢查所有適用的」的短語_)。另一方面,單選按鈕是專門爲***一次且只能選擇一個***選項而設計的...... – War10ck
您可以顯示使用2個單獨bool的單選按鈕的示例嗎? –
如果這兩個值是互斥的,那麼你有設計問題。你應該擁有一個單獨的屬性(比如說)'狀態'('string'或'enum')並使用單選按鈕並避免不必要的腳本(並且需要在服務器上再次重複驗證) –