我們經常接觸到.NET驗證問題上的元件被使用javascript/CSS的隱藏(即顯示:無)忽略.NET驗證器如果元件是隱藏的(顯示:無)
例如(有可能是語法錯誤,但不要擔心)
<asp:CheckBox ID="chkNewsletter" runat="server" Checked="true" />
...
<div id='newsletterOnly'>
<asp:TextBox ID="txtEmail" runat="server" />
<asp:RequiredFieldValidator ID="vldEmail" ControlToValidate="txtEmail" ErrorMessage="Required" runat="server" />
</div>
用JavaScript:
$('#chkNewsletter').changed(function() {
$(this).is(':checked') ? $('#newsletterOnly').show() : $('#newsletterOnly').hide();
});
它不應該驗證txtEmail如果被隱藏。
你不能提交表單,如果newsletterOnly是隱藏的,因爲儘管它已經被隱藏:(
你甚至看不到驗證錯誤消息,因爲它隱藏
是對的RequiredFieldValidator仍然有效有沒有解決這個我想我可以修改.NET JavaScript來驗證時,纔可見控制什麼辦法?
我試圖避免回傳給改善用戶體驗。
。
您是否嘗試禁用隱藏的元素?我希望這是解決方案。 – 2012-03-07 04:39:16
在發佈到服務器時使用兩種不同視圖模型的可能性如何:針對每種不同情況使用兩種視圖模型?你只需要發佈到兩條不同的路線。 – Eli 2012-03-07 04:40:13
或者,您需要在javascript中進行驗證,而不是在服務器上進行驗證。 – arcynum 2012-03-07 04:40:27