【问题标题】:datepicker - error daySettings is undefineddatepicker - 错误 daySettings 未定义
【发布时间】:2013-03-12 15:21:42
【问题描述】:

我正在尝试禁用 jquery ui 的 datepicker 功能的一些日子, 但此代码返回错误:daySettings is undefinedhttp://code.jquery.com/ui/1.9.2/jquery-ui.js。好像是对的,不知道。。。 请帮忙!

         var $j = jQuery.noConflict(); 
     $j(document).ready(function() {
        var group_id = <? echo $bp->groups->current_group->id; ?>;
        var userid = <? echo $bp->loggedin_user->id; ?>;
        var myBadDates = new Array ();
    function checkAvailability(mydate){
    jQuery.post(  
        ajaxurl,
        {   
        action : 'check_date',
        verificadata: "true", userid: userid, group_id: group_id
        },
        function( response ) {
        obj = JSON.parse(response);
        var key, quanti = 0; 
            for(key in obj.prenotati) { 
                if(obj.prenotati.hasOwnProperty(key)) { 
                    var datafrom = obj.prenotati[quanti].datafrom;
                    var datato = obj.prenotati[quanti].datato;
                    myBadDates.push(datafrom);
                    myBadDates.push(datato);
                    quanti++;
                }
            }
            var ritorno = true;
            var returnclass ="available";
            checkdate = $j.datepicker.formatDate('yy-mm-dd', mydate);
                for(var i = 0; i < myBadDates.length; i++) { 
                    $j(myBadDates[i])
                        if(myBadDates[i] == checkdate) { 
                        ritorno = false; returnclass="unavailable"; 
                        } 
                }
                return [ritorno,returnclass]; 
        }
    )
}       

/* $myBadDates = new array("2013-03-03","2013-03-05");      
function checkAvailability(mydate){
        var $return=true;
        var $returnclass ="available";
        $checkdate = $j.datepicker.formatDate('yy-mm-dd', mydate);
        for(var i = 0; i < $myBadDates.length; i++) { 
            if($myBadDates[i] == $checkdate) { 
                $return = false; $returnclass= "unavailable"; 
            } 
        } 
        return [$return,$returnclass]; 
        } */
            $j('#datafrom').datepicker({
             dateFormat : 'yy-mm-dd',
             beforeShowDay: checkAvailability,
             onSelect: function(dateText, inst) {
                $j("#datafrom").val(dateText);
            }
        });
        $j('#datato').datepicker({
             dateFormat : 'yy-mm-dd',
             beforeShowDay: checkAvailability,
                onSelect: function(dateText, inst) {
                    $j("#datato").val(dateText);
                }
        }); 
 });

【问题讨论】:

    标签: jquery jquery-ui datepicker undefined jquery-ui-datepicker


    【解决方案1】:

    您的问题与范围有关,您尝试在您的 post 成功方法中 return 您的结果,但这实际上并不是您的函数返回的内容

    我在下面所做的只是将返回变量的声明移到函数作用域的顶部,然后我还在函数作用域的顶部添加了 return 语句

    var $j = jQuery.noConflict(); 
         $j(document).ready(function() {
            var group_id = <? echo $bp->groups->current_group->id; ?>;
            var userid = <? echo $bp->loggedin_user->id; ?>;
            var $myBadDates = new Array ();
        jQuery.post(  
            ajaxurl,
            {   
            action : 'check_date',
            verificadata: "true", userid: userid, group_id: group_id
            },
            function( response ) {
            obj = JSON.parse(response);
            var key, count = 0; 
                for(key in obj.prenotati) { 
                    if(obj.prenotati.hasOwnProperty(key)) { 
                        var datafrom = obj.prenotati[count].datafrom;
                        var datato = obj.prenotati[count].datato;
                        $myBadDates.push(datafrom); 
                        $myBadDates.push(datato);
                        count++;
                    }
                }
                $j($myBadDates).appendTo("#item-meta");
            }
        )     
            function checkAvailability(mydate){
            var $return=true;
            var $returnclass ="available";
                checkdate = $j.datepicker.formatDate('yy-mm-dd', mydate);
                    for(var i = 0; i < $myBadDates.length; i++) { 
                            if($myBadDates[i] == checkdate) { 
                        //  alert($myBadDates[i]);
                            $return = false; $returnclass= "unavailable"; 
                            } 
                    }
            return [$return,$returnclass];  
            }  
    

    【讨论】:

    • 非常感谢!对,一个错误,我看到还有另一个问题,循环每个日期选择器的函数并在数组中推送重复值..这是正确的代码:
    • @valexus 如果这是正确答案,请标记旁边的勾号以将其标记为正确:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 2020-01-01
    相关资源
    最近更新 更多