2013-05-06 147 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。