<asp:Button ID="RecoverButton" runat="server" Text="Recover"
OnClick="RecoverButton_OnClick" UseSubmitBehavior="false" />
我发现UseSubmitBehavior="false"
会覆盖我提供的OnClientClick
函数。
我接着这样做了:
$(document).ready(function() {
$("[id$=RecoverButton]").live("click", RecoverButton_OnClick);
});
function RecoverButton_OnClick(s, e) {
var input = $("[id$=MasterUsername]").val();
var valid = $dn.s.MailValidation(input);
if (!valid) {
// prevent postback here
}
}
但我不知道如何阻止回发事件的启动。
我尝试过像e.preventDefault()
这样的东西,但它不起作用,想法?
更新的事情是,__doPostback
和jQuery
的点击处理程序似乎同时启动(或者可能是ASP.NET首先触发),但我在我的RecoverButton函数上发出警报,firebug已经显示警报在那里发生回发,阻止执行。
答案 0 :(得分:1)
我遇到了同样的问题。 我使用以下脏代码解决了这个问题:
if (!valid) {
//throw a exception to prevent _doPostBack method running.
var e = new Error();
throw e;
}
答案 1 :(得分:0)
试试这个:
$(document).ready(function() {
$("[id='<%= RecoverButton.ClientID %>']").live("click", RecoverButton_OnClick);
}
function RecoverButton_OnClick(event) {
var input = $("[id$=MasterUsername]").val();
var valid = $dn.s.MailValidation(input);
if (!valid) {
return false; //This cancels the submit event
}
}
希望这会有所帮助。干杯