Javascript 在onclientclick之后停止onclick

Javascript 在onclientclick之后停止onclick,javascript,c#,asp.net,.net,Javascript,C#,Asp.net,.net,我看到了一些关于如何做到这一点的例子,但它们似乎不适合我。话虽如此,我的做法与我所看到的例子略有不同,因此我不确定我所尝试的是否可行 我有一个多行asp texbox和onclientclick,在提交onclick事件之前,我想确保(除其他外)用户没有超过最大长度。然而,这个文本框是一个用户控件的一部分,它将在页面上使用X次,因此我不能从Javascript中获取该控件。我必须从后台代码发送clientID。因此,我在codebehind上添加OnClientClick事件,并在那里传递控件的

我看到了一些关于如何做到这一点的例子,但它们似乎不适合我。话虽如此,我的做法与我所看到的例子略有不同,因此我不确定我所尝试的是否可行

我有一个多行asp texbox和onclientclick,在提交onclick事件之前,我想确保(除其他外)用户没有超过最大长度。然而,这个文本框是一个用户控件的一部分,它将在页面上使用X次,因此我不能从Javascript中获取该控件。我必须从后台代码发送clientID。因此,我在codebehind上添加OnClientClick事件,并在那里传递控件的clientID。我不知道这是否就是我得到结果的原因

SaveNoteButton.OnClientClick = string.Format("return BeforeSave('{0}');", NoteTextBox.ClientID);

<asp:Button runat="server" CssClass="casenotes-bluebuttons" ID="SaveNoteButton" Text="Save" OnClick="SaveNoteButton_Click" Enabled="false" />

    function BeforeSave(noteCtrl) {
        var txt = document.getElementById(noteCtrl);

        if (txt.value.length > 500) {
            alert("false");
            return false;
        }
        else {
            alert("true");
            return true;
        }
    }
SaveNoteButton.OnClientClick=string.Format(“在保存之前返回({0}”);”,NoteTextBox.ClientID);
保存之前的函数(noteCtrl){
var txt=document.getElementById(noteCtrl);
如果(txt.value.length>500){
警告(“假”);
返回false;
}
否则{
警惕(“真实”);
返回true;
}
}

因此,理论上,OnClientClick属性被添加到SaveNoteButton按钮中。激发时,它传递NoteTextBox.ClientID,js检查文本框长度,返回true或false,然后根据返回值激发OnClick事件。但事实并非如此。我甚至尝试将方法调用包装在一个警报中,该方法实际上返回了我所期望的结果,但是无论该方法的返回值如何,OnClick事件都不会触发。我甚至尝试删除方法调用和硬编码true,但它仍然没有启动。所以我知道返回值是真的,但没有OnClick love。

奇怪的是,它是调用js方法时的语法

SaveNoteButton.OnClientClick = string.Format("return BeforeSave('{0}');", NoteTextBox.ClientID);
变成

SaveNoteButton.OnClientClick = string.Format("BeforeSave('{0}')", NoteTextBox.ClientID);

它工作正常。

删除
Enabled=“false”
位。这就是为什么onclick事件不会触发的原因。

好的,这就是我为解决问题所做的:

SaveNoteButton.OnClientClick = string.Format("if(!BeforeSave('{0}', '{1}')) return false;", NoteTextBox.ClientID, this._maxLength);

好吧,我错了。这仍然不起作用。现在,不管BeforeSave()的结果是什么,OnClick事件都会触发。您好,SmartDev,感谢您的响应。但是,如果您重新阅读该问题,您将看到,如果onclientclick结果为false,我正在尝试停止onclick事件。