我想知道是否有人可以帮我解决一个一直困扰我一段时间的问题。
我想在页面的更新面板中包含jQuery验证和错误摘要。但是我发现当错误摘要div在更新面板中时,在第一次回发之后,摘要不再显示 - 但是当我不设置条件时,jQuery仍在验证表单并阻止回发。
澄清一下,我遇到以下情况:
首次加载页面,尝试在未完成详细信息的情况下提交页面 - >阻止回发,并按预期显示错误摘要。
填写姓氏和姓氏字段,点击提交 - >页面已正确提交到服务器。
现在将forename或surname字段留空,然后点击提交 - >页面不会回发到服务器,但不会向用户显示错误摘要。
填写姓名和姓氏字段 - >页面正确回发
如果您在更新面板之外移动错误摘要div(div class="error-container"
),则页面将按预期工作。不幸的是,我无法用我的设计做到这一点。
我想知道是否有人遇到过这个问题,以及你是否找到了解决方法?
要重新创建我的问题,您可以使用以下代码:
TestValidator.aspx
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="TestValidator.aspx.vb" Inherits="TestValidator" %>
$(document).ready(function () {
load();
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () {
load();
});
});
function load() {
$("#<%= Me.Page.Form.ClientId %>").validate({
errorLabelContainer: $("ul", $('.error-container')),
wrapper: 'li'
});
}
function checkForm() {
return $("#<%= Me.Page.Form.ClientId %>").valid();
}
</script>
</ContentTemplate>
</asp:UpdatePanel>
</form>
TestValidator.aspx.vb
Partial Class TestValidator
Inherits System.Web.UI.Page
Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
Me.btnSubmit.Text = "Submitted at: " & Now.ToString
End Sub
结束班
由于 大卫
答案 0 :(得分:0)
这就是我使用jQuery函数在updatepanels中运行每个页面加载的方法:
// Attach our single function that will call all of the functions
// we want to run OnLoad to the Sys.Application.add_load handler.
if (Sys != undefined && Sys.Application) {
Sys.Application.add_load(callOnLoadFunctions);
} else {
window.onload = callOnLoadFunctions;
}
function callOnLoadFunctions() {
// Add all the functions to be called
load(); // your method
function1(); // some other function
function2(); // another function
}
我将所有j放在页面底部,这通常在我的jQuery和插件引用后立即在外部js文件中引用。