我正在使用MVC3,EF模型第一。MVC&Jquery驗證:已禁用Dropdownlists得到驗證,如何使它不會發生
我有兩個DropDownList的殘疾取決於用戶在另一個下拉列表選擇什麼樣的價值得到,我使用jQuery的這種這裏形式的代碼:
$(function() {
$('#SubjectTypeName').change(function() {
var value = $(this).val();
if (value == '2') {
$('#TeamName, #ConsultantName').removeAttr('disabled');
} else if (value == '3') {
$('#TeamName').attr('disabled', 'disabled');
$('#ConsultantName').attr('disabled', 'disabled');
} else if (value == '4') {
$('#TeamName').attr('disabled', 'disabled');
$('#ConsultantName').attr('disabled', 'disabled');
}
$(".questionsForSubjectType").hide();
$("#questionsForSubjectType_" + value).show();
});
})
但是當DropDownList中被禁用我點擊下一頁,禁用的DropDownLists通過我擁有的MVC標準Jquery驗證進行驗證。我通過在我的ViewModel的屬性中聲明[Required]來完成驗證,以進行驗證。我怎樣才能防止我禁用的DropDownlists驗證,但仍然確保DropDownLists得到驗證,如果他們啓用
在此先感謝!
一個不雅的解決方案:當您禁用DDL時,將其屬性設置爲「禁用驗證」或「僅用於驗證黑客」。你的服務器端邏輯應該知道不要使用它。你可以修改我的示例http://blogs.msdn.com/b/rickandy/archive/2012/01/09/cascasding-dropdownlist-in-asp-net-mvc.aspx重現該問題嗎?然後張貼簡單的項目,並要求更優雅的soln。 – RickAndMSFT 2012-03-23 16:50:05
嗨Rick,我找到了一個可行的解決方案,當我回家時我會發布它。我只是簡單地做了一個Jquery函數來驗證我的表單,如果聲明沒有驗證「Disabled」。你看到解決這個問題的不正確方法嗎? – Obsivus 2012-03-23 17:29:16