2013-05-06 111 views
1

我有组合框,其中我填写数据从ajax jquery。它工作正常,但当我点击保存按钮后发生后发回它不起作用。发布后,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不执行任何功能。

+0

你在代码中使用'Update panels'吗? – 2013-05-06 10:07:08

+0

是主页中的更新面板 – 2013-05-06 10:07:48

+0

您是否使用了主页面和更新面板? – 2013-05-06 10:32:02

回答

3

insted的当你正在使用jQuery和你正在处理您的数据使用jQuery ajax,为什么不把一个单独的占位符(即不使用更新面板)。然后你的代码将很快起作用 例如定义一个像这样的占位符;

<asp:Content ID="Content3" ContentPlaceHolderID="RemoveUpdatePanelPlaceHolder" runat="Server"> 
    // your content goes here 
</asp:Content> 
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 

     } 
    }); 
}); 
+0

我尝试这种方式,但问题仍然存在 – 2013-05-06 10:21:54

+0

这有点棘手工作w /更新面板和jQuery。 – 2013-05-06 10:23:13

7

尝试使用

function pageLoad() 
{ 

} 

$(document).ready()

+0

不会碰到同样的问题 – 2013-05-06 10:21:30

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

它为我工作,投票支持你 – Vijayaraghavan 2016-10-04 05:44:32

+0

它也适用于我,投票给你。 :) – 2016-11-30 09:06:23

4

请尝试以下脚本部分:

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



    I hope this will work. 
+0

这对我很好。看起来像pageLoad回发后触发。 – Maxx 2014-11-07 16:05:50

-1

document.ready功能大火只有一次,使用page_load()功能不火,一旦后happens.Try。