在jquery e.preventdefault()触发后,ASP.NET按钮服务器单击事件未触发

时间:2013-05-06 06:38:31

标签: c# jquery

我有一个网页,我使用jQuery AJAX从数据库加载数据以填充下拉列表。当jQuery函数运行时,服务器事件不会触发。

jQuery的:

 $('#Cmb_PDept').on('change', function (e) {
                    e.preventDefault();
                    var DepartmentId = $('#Cmb_PDept :selected').val();
                    if (DepartmentId == 0) {
                        EmpCombo.empty();
                        textbox.val("");

                        return;
                    }
                    $.ajax({
                        type: "POST",
                        cache: false,
                        contentType: "application/json; charset=utf-8",
                        url: '/WebService/GetEmployeeByDepID.asmx/GetEmployee',
                        data: '{ "DepartmentId": "' + DepartmentId + '" }',
                        dataType: 'json',
                        success: function (data) {
                            var data = $.parseJSON(data.d)
                            var options = $("#Cmb_PEmp");
                            options.empty();
                            for (var i = 0; i < data.length ; i++) {
                                options.append("<option value='" + data[i]["EmployeeId"] + "'>" + data[i]["EmployeeName"] + "</option>");   
                            }
                            myEvent();
                        },
                        error: function () { alert("error"); }
                    });
                });

ASP.NET Button控件

<asp:Button ID="Btn_PIncrementSave" runat="server" Text="Save" 
            OnClick="Btn_PIncrementSave_Click" CausesValidation="false" />

onClick事件

protected void Btn_PIncrementSave_Click(object sender, EventArgs e)
{
        try
        {
            TxBx_IncrementAmount.Text = Hid_BasicSalary.Value;
        }
        catch (Exception ex)
        {
            Utility.Msg_Error(this.Master, ex.Message);
        }
    }

此事件不会触发。我认为这是由于

 e.preventDefault();

当我删除它时,服务器端事件正常工作。

2 个答案:

答案 0 :(得分:2)

你的答案在问题标题中,如果你使用e.PreventDefault()它会停止触发服务器端事件,或者如果你写了return false语句,那么服务器端事件也不会触发。您从代码中移除了e.PreventDefault(),然后它就会触发。

答案 1 :(得分:1)

在ASP按钮中添加此ClientIDMode="Static"并选中。将源移动到浏览器时,将更改ASP:Button ID 的天气。可能是一个原因。点击浏览器中的查看来源,检查ID