我是jQuery的新手,在定製驗證元素(ASP.NET MVC3項目)樣式方面掙扎了一番。我知道我可以更改CSS爲field-validation-error
,input-validation-error
等,但我想實現如下(使用jQuery 1.5.1和jQuery UI 1.8.11):更改jQuery自定義樣式以進行驗證,以便將其顯示爲工具提示
對於標籤/輸入元素組合我想在驗證失敗時更改標籤顏色(現在只有輸入元素的背景顏色變爲淺紅色)。此外,我想顯示一個錯誤圖標在輸入元素的右側(這是有效的),並將錯誤消息作爲工具提示(這不起作用)。
此外,我希望驗證摘要顯示爲一個自定義樣式的工具提示時,懸停在窗體的提交按鈕(不知道如何完成這件事)。
通常,我的表單的驗證確實有效,但我想要如上所述更改元素的樣式。我沒有得到的是爲什麼validate
函數似乎沒有觸發(在這裏我想我可以從errorPlacement
等開始)。我的代碼如下:
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
$(document).ready(function()
{
$("form").validate({
debug: true,
errorPlacement: function(error, element)
{
error.insertBefore(element);
},
submitHandler: function()
{
alert("submit");
}
});
});
[...]
@using(Html.BeginForm())
{
[...]
<td>@Html.LabelFor(model => model.SomeField)</td>
<td>
@Html.EditorFor(model => model.SomeField)
@Html.ValidationMessagesFor(model => model.ValidFrom)
</td>
[...]
@Html.ValidationSummary(false);
<input id="btnSubmit" name="submit" type="submit" value="Send" />
}
儘管設置debug: true
和定義alert
爲submitHandler我看不到在Firefox網頁開發者控制檯上的任何(驗證有關)輸出。當表單有效時,單擊「提交」按鈕時,我也無法看到alert
消息,只會將消息發佈到服務器。我也嘗試明確設置窗體ID並在jQuery中訪問它:
$("#myForm")...
[...]
@using(Html.BeginForm("Action","Controler", FormMethod.Post, new { id = "myForm" }))
{
[...]
不幸的是,這並沒有改變任何東西。如何設置我的驗證元素,如上所述?爲什麼validate
函數不能觸發?
我越來越接近解決方案。對於我來說,找出最重要的是如何從** ASP.NET MVC **訪問驗證器設置,因爲您經常在網上找到的標準代碼不起作用(如上所述)。完成後我會用解決方案更新這篇文章。 – Gorgsenegger