1

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 は機能を実行しません。

4

6 に答える 6

7

使ってみて

function pageLoad() 
{

}

の代わりに$(document).ready()

于 2013-05-06T10:15:43.973 に答える
6
function myEvent() {
    // Put all your code
}
$(document).ready(function () {
    myEvent();
});
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
    myEvent();
});
于 2013-05-06T11:18:07.623 に答える
4

以下のスクリプト部分を試してください。

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



     I hope this will work.
于 2014-02-06T07:00:51.743 に答える
3

jQuery を使用しており、jQuery ajax を使用してデータを処理しているため、別のプレースホルダーを配置しないでください (更新パネルを使用しないでください)。そして、コードは確実に機能します。たとえば、次のようなプレースホルダーを定義します。

<asp:Content ID="Content3" ContentPlaceHolderID="RemoveUpdatePanelPlaceHolder" runat="Server">
   // your content goes here
</asp:Content>
于 2013-05-07T05:56:03.103 に答える
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

        }
    });
});
于 2013-05-06T10:13:30.267 に答える
-1

関数はdocument.ready一度だけ起動し、投稿が発生すると起動しませんpage_load()。関数を使用してみてください。

于 2015-03-03T10:17:55.240 に答える