I have an asp:Button
on my webpage, and it calls into a JavaScript function and a code-behind method. The latter makes a call to navigate to another page. In the JavaScript function, I'm checking for a condition. If this condition is not met, I want to abort the navigation so that the OnClick
method is not called. Is this possible?
<asp:Button OnClick="Button_Click" ID="Action1" OnClientClick="SaveValues()"
Text="Action1" CssClass="specialButton" runat="server" />
To block OnClick
from executing, just return false
from OnClientClick
:
<asp:Button OnClick="Button_Click" ID="Action1" OnClientClick="return SaveValues();"
Text="Action1" CssClass="specialButton" runat="server" />
Assuming that SaveValues
will also return a boolean whether or not the condition was met.
yes it is possible
function SaveValues()
{
if(//check your codition here)
{
return true;
}
else
{
return false;
}
}
<asp:Button OnClick="Button_Click" ID="Action1" OnClientClick="javascript:return SaveValues();" Text="Action1" CssClass="specialButton" runat="server" />
Returning true
or false
, according to the success of the JavaScript, should prevent or enable the button to submit. So, instead of just tacking it on at the end of OnClientClick
, where you'd have to conditionalise it and immediately make your call look much more ugly, let the method indicate its operational status.
来源:https://stackoverflow.com/questions/14810195/block-an-aspbutton-onclick-event-in-c-sharp-from-the-onclientclick-event-in-jav