Javascript 回发前如何进行验证?

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 } 当我按下提交按钮时,我调用确认框。如果我按取消-

我有ASP.Net验证程序的自定义控件

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,在我的答案中添加了解释