Saturday, November 17, 2012

jquery – Button – only do a postback if JavaScript function returns true

I have a button in ASP.NET. When the user clicks the button, I want to make some validation beforehand, so the postback only occurs if the validation method returns true.


My thought was to use the logic of the OnClientClick of the button. If you say OnClientClick=\”return false;\”, it won\’t give a postback, while returning true will. However, that\’s not working, as the resulting behaviour is it doesn\’t make a postback even though what my jQuery method returns.


Currently I have:


Markup:



<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();
}


So basically, what\’s wrong with this code? And how can I perform validation on my button before making a postback?






Rating: 4 out of 5 based on 3 ratings



The post jquery – Button – only do a postback if JavaScript function returns true appeared first on Javascript ASK.






via Javascript ASK http://javascriptask.phpfogapp.com/jquery-button-only-do-a-postback-if-javascript-function-returns-true.html

No comments:

Post a Comment