回帖后jquery无法正常工作

时间:2013-05-06 10:05:37

标签: c# asp.net jquery

我有一个组合框,我在其中填充来自ajax jquery的数据。它工作正常但是当我点击保存按钮后回发后发回它不起作用。

这是我的Jquery代码。

 $(document).ready(function () {
 var EmpCombo = $('#Cmb_PEmp');
                        var textbox = $("#TxBx_BasicSalary");
                        var BasicSalary = $('#Hid_BasicSalary');
                        var EmpID = $('#Hid_EmpID');
  EmpCombo.on('change', function EmpCmbFuction(e) {
                    e.preventDefault();
                    myEvent();

                });
function myEvent() {
                    var EmployeeId = $('#Cmb_PEmp :selected').val();
                    if (EmployeeId == 0) {
                        return;
                    }
                    $.ajax({
                        type: "POST",
                        cache: false,
                        contentType: "application/json; charset=utf-8",
                        url: '/WebService/GetBasicSalaryByEmpID.asmx/GetSalaryByEmpId',
                        data: '{ "EmployeeId": "' + EmployeeId + '" }',
                        dataType: 'json',
                        success: function (data) {
                            var data = $.parseJSON(data.d)

                            if (data["BasicSalary"] == 0) {
                                textbox.val("No BasicSalary Define Yet");
                                return;
                            }
                            textbox.val(data["BasicSalary"]);
                            BasicSalary.val(data["BasicSalary"]);
                            EmpID.val(EmployeeId);

                        },
                        error: function () { alert("error"); }
                    });
                }
 var prm = Sys.WebForms.PageRequestManager.getInstance();
                prm.add_endRequest(function () {
                    $(document).ready(function () {
 EmpCombo.on('change', function EmpCmbFuction(e) {
                            e.preventDefault();
                            myEvent();

                        });
});

如何在回复后解决此问题并不能给我正确的结果? Jquery不执行任何功能。

6 个答案:

答案 0 :(得分:7)

尝试使用

function pageLoad() 
{

}

而不是$(document).ready()

答案 1 :(得分:6)

function myEvent() {
    // Put all your code
}
$(document).ready(function () {
    myEvent();
});
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
    myEvent();
});

答案 2 :(得分:4)

请尝试以下脚本部分:

         function pageLoad(sender, args) {
         //Your jquery code
         }



     I hope this will work.

答案 3 :(得分:3)

当您使用jQuery并且使用jQuery ajax处理数据时,为什么不单独放置占位符(不使用更新面板)。然后你的代码将会非常有用 例如,定义这样的占位符;

<asp:Content ID="Content3" ContentPlaceHolderID="RemoveUpdatePanelPlaceHolder" runat="Server">
   // your content goes here
</asp:Content>

答案 4 :(得分:1)

我可以看到您已经在使用此类问题所需的PageRequestManager,但是您需要放置所有代码,以使其正常工作:

var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
    $(document).ready(function () {
        var EmpCombo = $('#Cmb_PEmp');
        var textbox = $("#TxBx_BasicSalary");
        var BasicSalary = $('#Hid_BasicSalary');
        var EmpID = $('#Hid_EmpID');
        EmpCombo.on('change', function EmpCmbFuction(e) {
            e.preventDefault();
            myEvent();

        });

        function myEvent() {
            // Put all your myEvent function code here

        }
    });
});

答案 5 :(得分:-1)

document.ready函数仅触发一次,并且一旦发布,它就不会触发。请尝试使用page_load()函数。