我有一个包含搜索栏的页面,默认情况下它显示下面的项目列表。每个项目都包装在一个 ajaxform 中,以便用户可以更新数量。客户端验证在页面加载时工作得非常好,它需要一个数量。
一旦用户单击搜索,并且部分结果被刷新,我的整个验证都会中断,并且不再显示验证摘要。
我试图通过调用刷新部分后重新添加验证,$.validator.unobtrusive.parse($("#resultList"));
但它似乎没有做任何事情。
有什么解决办法吗?
主窗体
<script>
function onSearchSucceeded() {
$.validator.unobtrusive.parse($("#resultList"));
}
function onUpdateSucceeded() {
$.validator.unobtrusive.parse($("#resultList"));
}
$(function () {
$("#resultList :input[type=text]").blur(function () {
$(this).closest("form").submit();
});
)};
</script>
@using (Ajax.BeginForm("Search",
null,
new AjaxOptions
{
UpdateTargetId = "resultList",
LoadingElementId = "searchLoader",
OnSuccess = "onSearchSucceeded"
},
new
{
id = "searchForm"
}
))
{
@Html.TextBoxFor(m => m.query)
<input type="submit" value="search" />
}
<div id="resultList">
@Html.Partial("SearchResult", Model.Results)
</div>
部分的
@foreach (var item in Model) {
using (Ajax.BeginForm("UpdateItem",
new AjaxOptions {
UpdateTargetId = "resultList",
OnSuccess = "onUpdateSucceeded"
},
null,
new{
id = "form-" + item.Id
}
)){
@Html.TextBoxFor(m => item.Quantity)
@Html.ValidationSummary()
// This form gets submitted through javascript after a blur on quantity textfield
}
}