大家好,我的问题很简单,但我是新手使用jquery。下一个脚本工作正常,但是当我使用updatepanel时,验证不起作用并且事件clic正在触发。我希望有人可以帮助我
<script type="text/javascript">
$(document).ready(function() {
$.validator.addMethod("match", function(value, element) {
return this.optional(element) || /^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/i.test(value);
}, "Por favor ingrese un email válido.");
$("#frmLogin").validate({
rules: {
//This section we need to place our custom rule
//for the control.
<%=inputEmail.UniqueID%>: {
required: true,
match: true,
maxlength: 100
},
<%=inputPassword.UniqueID%>: {
required: true,
maxlength: 10
},
},
messages: {
//This section we need to place our custom
//validation message for each control.
<%=inputEmail.UniqueID%>: {
required: "Ingrese un email",
match: "Ingrese un email válido",
maxlength: "Máximo 100 caracteres"
},
<%=inputPassword.UniqueID%>: {
required: "Ingrese un password",
maxlength: "Máximo 10 caracteres"
},
},
});
});
</script>
答案 0 :(得分:0)
使用此
<script type="text/javascript"> Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(initializeRequestHandler);
function initializeRequestHandler(sender, args) {
if (args.get_postBackElement().id == '<%= NameYourButton.ClientID%>' && $("#NameYourForm").valid() !== true) {
args.set_cancel(true);
}
}
</script>
答案 1 :(得分:0)
更新面板与$(document).ready()
的效果不佳。问题是在部分回调上更换了更新面板,但$(document).ready()
没有被调用,因此您的事件绑定将丢失。解决此问题的一种方法是使用PageRequestManager
重新订阅。
$(document).ready(function() {
// bind like normal
});
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function() {
// re-bind your events here
});
请注意,只有页面上有更新面板时才能使用PageRequestManager。