我在 ASP.NET 中有一个按钮。当用户单击按钮时,我想事先进行一些验证,因此只有在验证方法返回 true 时才会发生回发。
我的想法是使用按钮的 OnClientClick 的逻辑。如果你说 OnClientClick="return false;",它不会回发,而返回 true 会。但是,这不起作用,因为结果行为是即使我的 jQuery 方法返回,它也不会进行回发。
目前我有:
标记:
<asp:Button runat="server" ID="ReplyBtn" OnClientClick="return ValidateInput();" OnClick="ReplyBtn_Click" CssClass="btn-large btn-success"
Text="Answer" />
JavaScript:
function ValidateInput() {
var value = stripHtml(CKEDITOR.instances['ReplyBox'].getData()).trim();
var options = {
type: "POST",
url: "../../Services/ForumOperationService.svc/ReplyToPostFeedback",
data: '{"content":"' + value + '"}',
async: false,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$("#StatusReplyLbl").text(msg.ReplyToPostFeedbackResult);
if (msg.ReplyToPostFeedbackResult) {
return false;
} else {
return true;
}
},
error: function () {
return true;
}
};
$.ajax(options);
return false;
}
function stripHtml(str) {
return $('<div />', { html: str }).text();
}
所以基本上,这段代码有什么问题?以及如何在回发之前对我的按钮执行验证?