OnClientClick阻止OnClick事件?

时间:2012-11-05 12:52:36

标签: c# jquery asp.net

我有一个按钮,我需要触发一个onclick事件和一个onclientclick事件。 onclientclick就是这样的:

(function($){
$.fn.validate = function()  {
    var option = $('#<%=LblWarnings.ClientID%>').html();   
        if (option == "option1_OK" ||
            option == "option1_OK")  
            alert(wrong);
        else {
            $('#<%=LblWarnings.ClientID%>').html("Incomplete");
            alert(wrong);}        
    };
})(jQuery);

验证函数,检查标签的文本,如果条件为真,它应该继续并执行OnClick事件。如果它是假的,它不应该消除后面的代码(我的.cs文件中称为WriteInfo的方法,但只是更新标签,以便用户在提交数据时知道出错了。

onclientclick是否可以停止onclick事件?如果是这样,你能帮我提供asp:button句子,这样我就能触发这两个事件。

感谢。

在尝试Adil Answer后,我收到错误“对象预期”

我调用函数的方式可能有问题吗?

<asp:Button ID="ButtonRadioValue" CssClass="customButton" runat="server" onclick="WriteInfo" OnClientClick="validate();" Text="Accept" />

1 个答案:

答案 0 :(得分:4)

您可以使用 stopPropagation() 方法停止返回false的回发。

使用stopPropagation();

 (function($){
    $.fn.validate = function(event)  {
        var option = $('#<%=LblWarnings.ClientID%>').html();   
            if (option == "option1_OK" ||
                option == "option1_OK")  
                alert(wrong);
                event.stopPropagation();
            else {
                $('#<%=LblWarnings.ClientID%>').html("Incomplete");
                alert(wrong);}        
        };
    })(jQuery);

使用return false;

(function($){
$.fn.validate = function()  {
    var option = $('#<%=LblWarnings.ClientID%>').html();   
        if (option == "option1_OK" ||
            option == "option1_OK")  
            alert(wrong);
            return false;
        else {
            $('#<%=LblWarnings.ClientID%>').html("Incomplete");
            alert(wrong);}        
    };
})(jQuery);