【发布时间】:2010-11-24 22:25:04
【问题描述】:
我在我的 asp 页面中使用更新面板,并且我正在对异步回发进行 JQuery 验证...
我只想在按钮点击或提交时验证我的表单... 我的问题是..我所有的按钮都在不同的表单视图中,并且一次不会加载...这就是为什么我无法获取按钮 ID 并使用点击事件..这是我的代码..
Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(ValidateMyForm);
function ValidateMyForm(sender, args) {
var objPost = args.get_postBackElement();
if (objPost === null || objPost === undefined) return;
if (objPost.id == '<%= ((Button)(formViewinfo.FindControl("btnUpdate"))).ClientID %>') {
$('#pnlerrors').fadeOut('fast');
$('#pnlItemErrors').fadeOut('fast');
var isValid = $('#form1').validate({
errorClass: 'error',
invalidHandler: function (e, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
$('#pnlerrors').html('<p> Please correct the errors </p>').fadeIn('fast');
document.location.href = '#pnlerrors';
}
}, submitHandler: function () {
}
}).form();
if (!isValid) {
CancelPostback(sender, args);
} else {
}
}
//this is for rest of buttons
else {
$('#pnlItemErrors').fadeOut('fast');
$('#pnlerrors').fadeOut('fast');
var isValid = $('#form1').validate({
errorClass: 'error',
invalidHandler: function (e, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
$('#pnlerrors').fadeOut('fast');
document.location.replace('#', '#pnlItemErrors');
$('#pnlItemErrors').html('<p> Please correct the errors </p>').fadeIn('fast');
document.location.href = '#pnlItemErrors';
}
}, submitHandler: function () {
}
}).form();
if (!isValid) {
CancelPostback(sender, args);
} else {
}
}
}
我想要做的就是:仅对按钮提交进行第二次验证,而不是针对所有内容...我确实在此页面上收到了其他回发,这些回发也每次都得到验证(我想避免这种情况)...
我不知道这种方法好不好...我一直在努力解决这个问题..非常感谢您的帮助...
【问题讨论】:
-
为了清楚起见,您想仅在按下
submit按钮时触发验证? -
是的..我想在按钮点击时触发......如果你看到我的代码..我第一次使用按钮 id 检查 objargs.id..我必须全部完成我有其他按钮..但问题是这些按钮不会在时间加载...然后在 asp.net formview 内...我想要的是..如果有可能我可以为所有按钮和然后我需要检查(.btnupdate)。点击是真的然后验证否则不要..我希望你明白我在说什么..非常感谢..
标签: asp.net jquery validation