我有搜索網絡,沒有發現任何有幫助,所以想我會問這裏。造型驗證錯誤的相關輸入,如MVC
我有一個簡單的asp.net 2.0窗體。
<form runat="server">
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
<asp:TextBox ID="txt1" runat="server" ValidationGroup="valGroup1"></asp:TextBox>
<asp:RequiredFieldValidator ControlToValidate="txt1" ValidationGroup="valGroup1" runat="server" Display="Dynamic" ID="val1" ErrorMessage="*"></asp:RequiredFieldValidator>
<asp:Button ID="btn1" runat="server" ValidationGroup="valGroup1" CausesValidation="true" Text="submit" />
</form>
我想要做的是在特定輸入的驗證失敗時更改輸入的樣式。最好通過添加一個類,而不是內聯樣式。
我可以做到這一點,當javascript通過後面的代碼不可用,但我想要做的是有同樣的情況發生時,JavaScript可用。
我知道ASP.NET注入一個名爲Page_Validators的全局js變量,它是頁面上所有驗證器跨度的數組。有沒有更容易的方法來做到這一點,而不是循環所有這些?
編輯
我能有點用下面的做:
<script type="text/javascript">
function ValidateInputs() {
var validators = Page_Validators;
for (var i = 0; i < validators.length; i++) {
var validator = validators[i];
if (!validator.isvalid) {
document.getElementById(validator.controltovalidate).setAttribute("style", "border:solid 1px red;");
}
}
}
</script>
只是不知道是否有更好的方法?
我可以得到微軟驗證腳本來調用我的驗證方法嗎?或者我可以手動掛鉤到驗證事件?
感謝布賴恩。我從來沒有這樣做,只是試圖挖掘那些可能知道是否有更好的方法的天才。我想這個解決方案可能會起作用,儘管我必須改變我稱之爲驗證事件的方式,此時我已經將它放到了onclick上,在驗證器在該頁面返回驗證響應之前觸發驗證事件。 :( – jimplode 2010-10-13 16:28:56
也許你可以利用form.onsubmit作爲展示目的,我不認爲有一個通用事件,除非你用包含你的邏輯的自定義實現來替換Page_Validate方法。 – 2010-10-13 16:40:59