Call Javascript function from codebehind on button click
I want to execute a javascript function on a button click and if the result is a sucess only then the server side code should be executed on that button click.
Below is what I am trying to do
protected void btnAdd_Click(object sender, EventArgs e)
{
if (btnAddItem.Text == "Add")
{
string script = string.Format(@"validate()");
ScriptManager.RegisterClientScriptBlock(this, typeof(Page), UniqueID, script, true);
if (text1.text== null)
{
Addtogrid();
}
and below is my javascript function
function validate() {
var arrTextBox = document.getElementsByTagName("input");
var retVal = 1;
for (i = 0; i < arrTextBox.length; i++) {
if (arrTextBox[i].type == "text" && arrTextBox[i].value == "") {
retVal = 0;
}
}
if (retVal == 0) {
alert("Validation Failed");
return false;
}
else {
alert("Validation Success");
return true;
}
}
I am not able to understand how to capture of the result of the javascript function . I am trying thi开发者_如何转开发s for the first time. Kindly help me.
I think the simplest way is to set up the validation function to be called on button click in your markup. So your markup should look like the following..
<asp:Button runat="server" ID="btnAdd" Text="My Button" OnClientClick="return validate()" OnClick="btnAdd_Click" />
Note the OnClientClick attribute. You can use that attribute to call a javascript function that executes before the server side code.
The following way u can call javascript function after server side operation
<script language="JavaScript" type="text/javascript">
function validate(msg) {
alert(msg);
}
</script>
<asp:Button ID="btnValidateUSR" runat="server" Text="Validate USR" CssClass="butn" OnClick="btnValidateUSR_Click"/>
protected void btnValidateUSR_Click(object sender, EventArgs e)
{
ClientScriptManager cs = Page.ClientScript;
cs.RegisterStartupScript(this.GetType(), "ValError", "validate('" +Resources.ErrorDescription.BalancingErrorMsg+ "');", true);
}
精彩评论