jquery change事件正在调用三次

时间:2017-05-09 12:39:45

标签: jquery asp.net-mvc model-view-controller asp.net-ajax

我在视图中调用onchange函数。此字段是从日历中选择日期。

    $('#IDContractDate').on('change', function (e) {

        var GetThis = $(this).val();
        var CoveredId = $('#ddlCoveredIndividual option:selected').attr('attribute2');
        var relationshipId = $('#ddlCoveredIndividual option:selected').attr('code');

        if (CoveredId !== 'undefined' && relationshipId !== "undefined") {
            $.ajax({
                type: "GET",
                url: AppVirtualPath + "MemberDetails/GetEnrollmentDates?personId=" + CoveredId + "&benefitOptionId=" + $('#hdBenefitOptionId').val() + "&benefitId=" + $('#hdBenefitId').val() + "&relationShipId=" + relationshipId + "&contractDate=" + GetThis,
                dataType: 'json',
                success: function (data) {
                    $.each(data, function (key, value) {
                        if (key == "SystemEntryDate") {
                            $('#IDsystemEntryDate').val(value);
                        }
                        else if (key == "EntryDate") {
                            $('#IDEntryDate').val(value);
                        }
                        else if (key == "ADCSDate") {
                            $('#IDADCStartDate').val(value);
                        }
                        else if (key == "NDCSDate") {
                            $('#IDNDCStartDate').val(value);
                        }
                    });

                },
                error: function (xhr, textStatus, error) {
                }
            });
        }

    }); 

我无法理解为什么这个功能正在调用三次。请帮忙..

2 个答案:

答案 0 :(得分:1)

使用此unbind()函数处理您的更改事件。希望这会对你有所帮助。

$("#IDContractDate").unbind().on('change',function(e) {
    //Stuff
});

答案 1 :(得分:0)

好像处理程序多次连接。挂钩处理程序之前取消绑定

$('#IDContractDate').unbind().on('change', function (e) {
});