如果我同时使用onclick()
和onClientClick()
,是否可以确保仅在客户端函数返回TRUE后才调用服务器端,反之亦然?
例如:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Import Namespace="System.Xml" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%
protected void save_n_display(object sender, EventArgs e)
{
// This must be called when validate() returns true...
}
%>
<asp:Button ID="Button1" OnClientClick="validate()" onClick="save_n _display" "Text="Check" runat="server" />
<script type="text/javascript" language="javascript">
function validate() // client side Validation is done
{
}
</script>
那么我可以使用
onclick()
和onClientClick()
还是为此需要其他东西?我什至尝试将变量从javascript传递到asp函数,因此,当validate返回true时,将调用save_n _display。
最佳答案
但是,您可以注册客户端点击事件,这无关紧要。尽管如果您使用服务器控件,那么您确实希望使用onclientclick。但是关键是您要使用return Validate()。然后,在您的validate方法中,根据是否已验证,返回一个true或false值。
编辑:因此使onclientclick看起来像这样:
onclientclick="return Validate();"
然后在validate函数中:
function Validate()
{
return true;
}
关于javascript - onclick()和onClientClick()之间的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3346171/