首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

asp.net 同一旋钮触发事件里面 有JS前端写的东西 有CS端写的东西

2013-07-04 
asp.net同一按钮触发事件里面 有JS前端写的东西有CS端写的东西能不能先执行完JS前端写的东西再执行CS后端

asp.net 同一按钮触发事件里面 有JS前端写的东西 有CS端写的东西
能不能先执行完JS前端写的东西  再执行CS后端写的东西?asp.net  同一旋钮触发事件里面 有JS前端写的东西  有CS端写的东西
[解决办法]
可以的啊,先执行onclick事件,然后执行onclientclick事件
[解决办法]

引用:
可以的啊,先执行onclick事件,然后执行onclientclick事件

反了
[解决办法]
引用:
Quote: 引用:

可以的啊,先执行onclick事件,然后执行onclientclick事件

反了

sorry
始终是onclientClick 事件先执行 后执行jquery 的点击事件,最后是onclick事件
[解决办法]
引用:
在网上搜了下 说加这个东西
最后发现还是不行
  protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                //给button1添加客户端事件
                btnCreateUser.Attributes.Add("OnClick", "return  btnCreateUser_onclick()");
            }

        }

你这个是对的,btnCreateUser_onclick这个方法应该是前段的那个js方法,如果在这个方法的最后边加上return false; 服务端后台的代码就不会执行了
[解决办法]
还是你啊,lz
为啥不用asp.net控件的button啊的onclientclick事件啊
[解决办法]
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button"  OnClientClick="return confirm('确定要删除么');"/>


你还可以直接利用js 调用相应js方法后,利用ajax调用后台方法
[解决办法]
onclientclick  是 注册JS 事件  返回 TRUE  就可以执行 后台的  事件  返回 FASLE  不执行后台的 事件


默认 返回 TRUE
[解决办法]


调试了一下发现不执行JS方法,能不能加Q帮我看看,2441941257  谢谢


把你的js代码贴出来
[解决办法]
function btnCreateUser() {
            if (userName.val() != "" && userPwd.val() != "" && userAlignPwd.val() != "" && userEmail.val() != "") {
                if (lblUserName.val() == "通过" && lblUserPwd.val() == "通过" && lblUserAlignPwd.val() == "通过" && lblUserEmail.val() == "通过") {
                    if (alignServer[0].checked == true) {
                        $.ajax({
                            type: "POST",
                            url: $.getRootPath() + "/UserCenter/Jst_User_ValidateUser.asmx/CreateUser",
                            data: { userName: userName.val(), userPwd: userPwd.val(), userEmail: userEmail.val() },


                            dataType: "xml",
                            success: function (data) {
                                var jsonData = $.xml2json(data);
                                if (jsonData == false) {
                                    alert("注册失败!原因可能为用户名已存在");
                                    return false;
                                }
                                else if (jsonData == "true") {
                                    alert("注册成功!");
                                    location.href = $.getRootPath() + "/User/UserCenter.aspx";
                                }
                                else {
                                    alert($.xml2json(data));
                                    return false;


                                }
                            }
                        });
                    }
                    else {
                        alert("您尚未同意服务条款,不能注册");
                        return false;
                    }
                }
                else {
                    alert("输入字段有误,请检查");
                    return false;
                }
            } else {
                alert("请按要求填写资料");
                return false;
            }
        }
[解决办法]

引用:
  $("#btnCreateUser").click(function () {
        if (userName.val() != "" && userPwd.val() != "" && userAlignPwd.val() != "" && userEmail.val() != "") {
            if (lblUserName.val() == "通过" && lblUserPwd.val() == "通过" && lblUserAlignPwd.val() == "通过" && lblUserEmail.val() == "通过") {


                //                if (ddlGroup.val() != 0) {
                // var selectTex = ddlGroup.find("option:selected").text()
                if (alignServer[0].checked == true) {
                    $.ajax({
                        type: "POST",
                        url: $.getRootPath() + "/UserCenter/Jst_User_ValidateUser.asmx/CreateUser",
                        data: { userName: userName.val(), userPwd: userPwd.val(), userEmail: userEmail.val() },
                        dataType: "xml",                        
                        success: function (data) {
                            var jsonData = $.xml2json(data);
                            if (jsonData == false) {
                                alert("注册失败!原因可能为用户名已存在");
                                return false;
                            }
                            else if (jsonData == "true") {


                                alert("注册成功!");
                                location.href = $.getRootPath() + "/User/UserCenter.aspx";
                            }
                            else {
                                alert($.xml2json(data));
                                return false;
                            }
                        }                        
                    });
                }
                else {
                    alert("您尚未同意服务条款,不能注册");
                    return false;
                }
                //                }
                //                else {
                //                    alert("请选择学校群");


                //                    return false;
                //                }
            }
            else {
                alert("输入字段有误,请检查");
                return false;
            }
        } else {
            alert("请按要求填写资料");
            return false;
        }
    });



注册的JS

js代码的执行有一个执行顺序的问题
直接写到控件里像这样onclick="testjs()"这样的代码先执行,然后才会去执行你动态注册的代码$(dom).click(function(){}),先执行了asp.net的回调即:"__dopostback"页面直接刷新了,所以你看不到js执行
其实不太明白,你注册用了ajax,让后又要用postback,为啥不全部都用ajax实现呢?
[解决办法]
  protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                //给button1添加客户端事件
                btnCreateUser.Attributes.Add("OnClick", "return  btnCreateUser()");
            }

        }
[解决办法]
要解决你的问题的话,不要用jquery动态绑定,直接定义一个函数,写到控件onclientclick里面去吧
[解决办法]
全部用ajax实现好得多
[解决办法]
引用:
要解决你的问题的话,不要用jquery动态绑定,直接定义一个函数,写到控件onclientclick里面去吧

不对这样估计还是会直接先触发刷新的,应为没有return false;
你可以直接在ajax返回正确值之后手动调用__dopostback刷新页面
------解决方案--------------------


定义一个onclientclick事件,客户端return true的时候,才执行服务器onclick事件。
[解决办法]


    <script>
        function onClientClick() {
            alert("I'm ClientClick!");
            return true;
        }
    </script>
<asp:Button ID="btn_My" runat="server" Text="Button" OnClientClick="return onClientClick();" onclick="btn_My_Click" />


        protected void btn_My_Click(object sender, EventArgs e)
        {
            Response.Write("I'm ServerClick!");
        }

[解决办法]
引用:
Quote: 引用:


    <script>
        function onClientClick() {
            alert("I'm ClientClick!");
            return true;
        }
    </script>
<asp:Button ID="btn_My" runat="server" Text="Button" OnClientClick="return onClientClick();" onclick="btn_My_Click" />


        protected void btn_My_Click(object sender, EventArgs e)
        {
            Response.Write("I'm ServerClick!");
        }

这个测试了是先执行了JS弹框 在执行CS端代码
但是放到我项目中来 没有执行JS注册 再执行CS端代码  不知道是什么原因呢


那你把后台生成反回的HTML,贴出来看看.
[解决办法]

        $(document).ready(function () {
            $('#<%=Button1.ClientID %>').click(function () {


                alert(1);
            })    
        }); 


[解决办法]
引用:
可以的啊,先执行onclick事件,然后执行onclientclick事件sorry
始终是onclientClick 事件先执行 后执行jquery 的点击事件,最后是onclick事件


正解。

热点排行