2

私は2つのコントロールを持っています.1つは設定されています.もう1つはそうではありません. 支援できる jQuery の達人なら誰でも素晴らしいでしょう。すべてのコード呼び出しを追加します。

  1. return {
    init: function (ctrl_IDs) {
        _benefitPlans.pop();
        _categories.pop();
        _definitions.pop();
        _diagGroups.pop();
        _ageGroups.pop();
        _placeOfServices.pop();
        _serviceID = getServiceID();
    
        if (ctrl_IDs) {
            _ids = ctrl_IDs;
        }
    
        initialHideEditPanels();
        initialButtonDisable();
    
        bindDatePickerEvents();
        bindButtonEvents();
        bindInputBlurEvents();
        bindCheckboxEvents();
        bindRadGridEvents();
    
        initialDataBind();
    
        toggleServiceCodeInputEnabled(false);
        toggleBenefitPlanInputEnabled(false);
       }
     }
    }(jQuery, $telerik));  
    

bindDatePickerEvents(); を見る必要があります。

 function bindDatePickerEvents() {
    bindDates($find(_ids.txtServiceCodeEffectiveDate), $find(_ids.txtServiceCodeEndDate));
    bindDates($find(_ids.txtBenefitPlanEffectiveDate), $find(_ids.txtBenefitPlanEndDate), _attrTypes.benefitPlan);//TODO RBD SW#6848
    bindDates($find(_ids.txtServiceCategoryEffectiveDate), $find(_ids.txtServiceCategoryEndDate), _attrTypes.serviceCategory);
    bindDates($find(_ids.txtServiceDefinitionEffectiveDate), $find(_ids.txtServiceDefinitionEndDate), _attrTypes.serviceDefinition);
    bindDates($find(_ids.txtDiagnosisGroupEffectiveDate), $find(_ids.txtDiagnosisGroupEndDate), _attrTypes.diagnosisGroup);
    bindDates($find(_ids.txtAgeGroupEffectiveDate), $find(_ids.txtAgeGroupEndDate), _attrTypes.ageGroup);
    bindDates($find(_ids.txtPlacesOfServiceEffectiveDate), $find(_ids.txtPlacesOfServiceEndDate), _attrTypes.placeOfService);
}

次の bindDates()

    function bindDates(effDate, endDate, attrType) {
    //Declare variables to be used in the JavaScript Function
    var effDateID = effDate.get_id();
    var endDateID = endDate.get_id();
    var tmp = attrType;

    $(effDate.get_element()).on('validDateEntered', { effID: effDateID, endID: endDateID, type: tmp }, function (evt) {
        setEffectiveDates($find(evt.data.effID), $find(evt.data.endID), evt.data.type);
    });

     effDate.add_dateSelected(function (sender, args) {
        validateDatesRange(effDate, endDate);
    });

    effDate.get_dateInput().add_blur(function (sender, args) {
        validateDatesRange(effDate, endDate);
    });

    endDate.add_dateSelected(function (sender, args) {
        validateDatesRange(effDate, endDate);
    });

    endDate.get_dateInput().add_blur(function (sender, args) {
        validateDatesRange(effDate, endDate);
    });
}

有効日の設定

    function setEffectiveDates(effDateCtrl, endDateCtrl, attrType) {
    var type = attrType !== undefined ? attrType : -1,
        effDate = effDateCtrl.get_selectedDate(),
        endDate = endDateCtrl.get_selectedDate(), 
        effDateString = effDate == undefined ? '' : dateToString(effDate),
        endDateString = endDate == undefined ? '' : dateToString(endDate);

    switch (type) {
        //RBD CODING ON SATURDAY MORNING CARTOONS
        case _attrTypes.benefitPlan:
            _selected.benefitPlan.eff_date = effDateString;
            _selected.benefitPlan.end_date = endDateString; 
            break;
        case _attrTypes.serviceCategory:
            _selected.serviceCategory.eff_date = effDateString;
            _selected.serviceCategory.end_date = endDateString;
            break;
        case _attrTypes.serviceDefinition:
            _selected.serviceDefinition.eff_date = effDateString;
            _selected.serviceDefinition.end_date = endDateString;
            break;
        case _attrTypes.diagnosisGroup:
            _selected.diagnosisGroup.eff_date = effDateString;
            _selected.diagnosisGroup.end_date = endDateString;
            break;
        case _attrTypes.ageGroup:
            _selected.ageGroup.eff_date = effDateString;
            _selected.ageGroup.end_date = endDateString;
            break;
        case _attrTypes.placeOfService:
            _selected.placeOfService.eff_date = effDateString;
            _selected.placeOfService.end_date = endDateString;
            break;
        default:
            _details.eff_date = effDateString;
            _details.end_date = endDateString;
            break;
    }
}

最終的なvalidateDatesRange

function validateDatesRange(effDateCtrl, endDateCtrl) {
    var result = true,
        effDate = effDateCtrl.get_selectedDate(),
        endDate = endDateCtrl.get_selectedDate(),
        cell = $(effDateCtrl.get_element()).parents('td').first();

    if (effDate && endDate) {
        if (effDate > endDate) {
            var div = "<div class='errorMessage' style='display:none;'>Effective date must be less than end date.</div>";
            $(div).prependTo(cell).fadeIn();
            result = false;
        }
    }

    if (result) {
        cell.find('div.errorMessage').fadeOut(200, null, function () {     $(this).remove(); });
        $(effDateCtrl.get_element()).trigger('validDateEntered');            
    }
    return result;
}

繰り返しますが、ここでの問題は endDateCtrl が日付を変更していないことです。ページが開くと、データがグリッドに取り込まれ、エンド ユーザーが編集ボタンをクリックすると、パネルに取り込まれます。ただし、effDateCtrl には正しい日付が表示されますが、endDateCtrl には表示されませんが、編集ボタンを 2 回クリックすると日付が表示されます。私は困惑しています。

    function pageLoad() {
        $(document).ready(function () {
            sc.init(getClientIDs());
        });
    }
4

0 に答える 0