ASP.NET的OnClientClick(return )与OnClick事件

OnClientClick是客户端事件方法.一般采用JavaScript来进行处理.也就是直接在IE端运行.一点击就运行.

OnClick事件是服务器端事件处理方法,在服务器端,也就是IIS中运行.点击按钮后,执行postback,再运行.

如果一个按钮上我们同时有客户端的OnClientClick方法又有OnClick事件处理方法,如何才能按照正常的逻辑运行呢?

OnClientClick中我们常用来做一些客户端的检测.当然放在服务器也可以做同样的检测,但这样做的代价是与服务器进行交互,消耗资源。

例:

test()为一javascript函数.

    <script type="text/javascript">        function test() {            var value = document.getElementById("<%=t1.ClientID%>").value;            if (value == "") {                alert("不能为空值");                return false;            }        }    </script>

t1为一文本框,判断输入内容是否为空

<asp:TextBox ID="t1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="提交"  OnClientClick="return test()" onclick="Button1_Click"  />

需要注意的是当我们当击这个按钮时,自动先执行的客户端,再执行服务器端的.如果客户端返回的是false,那么服务器端对应的方法永远不会执行.这样就达到检测,只有通过才去执行服务器端的方法.

也就是说如果我们上面写成:

        <asp:Button ID="Button1" runat="server" Text="提交"  OnClientClick="test();return false" onclick="Button1_Click"  />

那么不管test()执行的结果如何.服务器端对应的Button1_Click方法都永远不会执行.因为return false使得始终使客户端返回false

如果我们写成:

        <asp:Button ID="Button1" runat="server" Text="提交"  OnClientClick="test()" onclick="Button1_Click"  />

那么Button1_Click都有会发生.同样也就达不到效果.也就是说你没有通过检测也去执行服务器的方法了.

我们还可以通过Button1.Attributes.Add("onclick", "test()");的方法来触发客户端事件

时间: 2024-10-07 22:10:41

ASP.NET的OnClientClick(return )与OnClick事件的相关文章

Asp.Net回车键触发Button的OnClick事件解决方案

在aspx页面有textbox文本框,还有三个button按钮.启用textbox的TextChanged事件和button的click事件. 问题: 现在在textbox文本框输入完数据按“回车”后,会触发TextChanged事件,但同时还会触发该页面第一个button按钮的Click事件. 解决方法一: 当在文本框中敲回车的时候,表单提交.因为在.net中一个Page只有一个form表单.所以也就有一个Sumbit事件. 当UseSubmitBehavior的属性是True的时候,表单的提

ASP.NET的OnClientClick与OnClick事件

OnClientClick是客户端事件方法.一般采用JavaScript来进行处理.也就是直接在IE端运行.一点击就运行. OnClick事件是服务器端事件处理方法,在服务器端,也就是IIS中运行.点击按钮后,执行postback,再运行. 如果一个按钮上我们同时有客户端的OnClientClick方法又有OnClick事件处理方法,如何才能按照正常的逻辑运行呢? OnClientClick中我们常用来做一些客户端的检测.当然放在服务器也可以做同样的检测,但这样做的代价是与服务器进行交互,消耗资

【转】ASP.NET的OnClientClick与OnClick事件【解决了“识别用户在对话框里面选yes或no的问题”】

OnClientClick是客户端事件方法.一般采用JavaScript来进行处理.也就是直接在IE端运行.一点击就运行. OnClick事件是服务器端事件处理方法,在服务器端,也就是IIS中运行.点击按钮后,执行postback,再运行. 如果一个按钮上我们同时有客户端的OnClientClick方法又有OnClick事件处理方法,如何才能按照正常的逻辑运行呢? OnClientClick中我们常用来做一些客户端的检测.当然放在服务器也可以做同样的检测,但这样做的代价是与服务器进行交互,消耗资

asp.net js验证为空j时,不让button执行onclick事件

<script type ="text/javascript" language="javascript">           function checkInput() {                  var strMsg = "";          var userName = document.getElementById("<%=txt_Uer.ClientID%>").value; 

asp.net 环境下当javascript验证不通过是禁止button按钮执行onclick事件的

把内容过程重要的一些内容段做个记录,下边资料是关于asp.net 环境下当javascript验证不通过是禁止button按钮执行onclick事件的内容. <script type ="text/javascript" language="javascript">function checkInput() { var strMsg = "";var userName = document.getElementById("&

asp.net中Button按钮点击两次才执行Onclick事件的原因

今天写了一个简单的聊天室,有登录页面和聊天室,当从登录页面跳入到聊天室过后,却发现要点击两次发送按钮才能发送到显示区,然后发送按钮正常运行. 通过不断测试,发现,第一次点击并没有执行点击事件,第二次才执行的点击事件.并且也找到了问题所在.下面用一个简单的小例子来说明: 页面Server_Transfer.aspx: <asp:Button ID="Button1" runat="server" Text="Button" OnClick=&

js方法内Ajax请求数据判断,验证无效(OnClientClick=&quot;return Method();&quot;),还是直接执行后台代码

function CheckAdd() { var flag = true; $.ajax({ cache: false, async: false, url: "/ajaxpage/getajax.aspx?t=adjserviceclientlist&Cellphone=" + Cellphone + "&a=" + Math.random(), dataType: 'json', success: function (data) { if (d

OnClientClick=&quot;return confirm(&#39;确定要删除吗?&#39;)&quot;

OnClientClick="return confirm('确定要删除吗?')"   -----------------------前台代码 OnClientClick用于执行客户端脚本.当我们单击一个按钮时,最先执行的是OnClientClick 事件,根据OnClientClick 事件的返回值来决定是否执行OnClick事件来postback页面.其返回值为true 和 false,默认情况下OnClientClick 返回值为真. 如果你写成onclick="con

js 注册控件的onclick事件

今天做了一个全选功能:1.点击全选,全部选中.选中状态再点击全选,全部取消选中2.点击成员,判断是否成员全部选中,true:全选为选中状态,false:全选为未选中状态. 使用js是比较麻烦的就是如何获取到成员对象集合,首先我们了解到获取控件的方法有几种:1.document.getElementById("控件ID") 获取指定的控件,因为根据HTML规范中ID是具有唯一性的.注意:在获取ASP.Net控件的ID时,使用<%=控件ID.ClientID%>2.docume