Javascript 回发前如何进行验证?
我有ASP.Net验证程序的自定义控件Javascript 回发前如何进行验证?,javascript,asp.net,validation,postback,Javascript,Asp.net,Validation,Postback,我有ASP.Net验证程序的自定义控件 writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "javascript:return DoSmth();"); function DoSmth() { var cBox = confirm("Are you sure?"); if (!cBox) { return false; } else { //Invoke validation } 当我按下提交按钮时,我调用确认框。如果我按取消-
writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "javascript:return DoSmth();");
function DoSmth() {
var cBox = confirm("Are you sure?");
if (!cBox) {
return false;
}
else {
//Invoke validation
}
当我按下提交按钮时,我调用确认框。如果我按取消-好的。但如果我按ok,我需要进行验证。如何停止回发并执行验证?呼叫客户端
Page\u客户端验证(验证组)
。如果页面有效,则返回true
function DoSmth() {
var cBox = confirm("Are you sure?");
if (!cBox) {
return false;
}
else {
return Page_ClientValidate(validationGroup);
}
}
编辑(对评论的回答):
validationGroup
这里有一个字符串变量,不需要将它传递给DoSmth
函数(老实说,答案应该是:这取决于具体情况)
如果此函数是在.js
文件中定义的,则是,validationGroup
应作为参数传递
如果它是页面/控件的一部分,则更容易使用,例如,此处的服务器端结构:
return Page_ClientValidate('<%= btnSubmit.ValidationGroup %>');
返回页面\u ClientValidate(“”);
其中,
btnSubmit
是一个导致验证的按钮,或者只使用字符串变量。我不确定是否可以使用ASP.Net验证停止回发。从MSDN:
“验证发生在第页之后
初始化(即,在查看之后
已删除状态和回发数据
已处理)但在任何变更或
单击将调用事件处理程序。“
我使用并检查值的方法与确认对话框相同
function DoSmth() {
$('#form1').validate({
rules: { field: "required" }
});
var cBox = confirm("Are you shure?");
if (cBox && $('#form1').valid() ) {
//form is valid
}
else {
return false;
}
听起来您需要使用javascript进行客户端验证。
javascript:
不适用于事件处理程序。他们总是使用JavaScript。实际上,它之所以有效,是因为它定义了一个标签。。如果JavaScript没有标签,这将是一个语法错误。在这种情况下,您应该将validationgroup传递给自定义控件AddAttributes代码中的DoSmth方法。@gbs,在我的答案中添加了解释