我有一个组合框,我在其中填充来自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不执行任何功能。
答案 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()
函数。