Javascript 需要jQuery帮助——两个控件一个正在设置,另一个未设置

Javascript 需要jQuery帮助——两个控件一个正在设置,另一个未设置,javascript,jquery,Javascript,Jquery,我有两个控件,一个正在设置,另一个未设置。任何能够提供帮助的jQuery大师都会很好。我将添加所有代码调用: 我们需要查看bindDatePickerEvents() 下一个日期() 设定生效日期 function setEffectiveDates(effDateCtrl, endDateCtrl, attrType) { var type = attrType !== undefined ? attrType : -1, effDate = effDateC

我有两个控件,一个正在设置,另一个未设置。任何能够提供帮助的jQuery大师都会很好。我将添加所有代码调用:

  • 我们需要查看bindDatePickerEvents()

    下一个日期()

    设定生效日期

        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;
        }
    }
    
    最终验证范围

    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;
    }
    

    您的第一个代码块中是否存在复制/粘贴奇怪之处?在
    返回之前,我会期待一些东西{
    ,可能是一个缺少的函数声明?Klores我将发布整个脚本…参见JSFIDLE-假设与您的实时代码完全匹配,则有两个对象变量缺少结尾
    s-
    \u缓存的
    \u选择的
    \u重叠日期
    。我不知道这是否有什么不好的地方o解决您的问题,但值得纠正。您如何使用
    sc
        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;
        }
    }
    
    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;
    }
    
        function pageLoad() {
            $(document).ready(function () {
                sc.init(getClientIDs());
            });
        }