2012-02-19 91 views
0

當需要從組合框中選擇不同的城市時,我需要更新UI Jquery datepicker的禁用日期,所以iv完成的事情是組合框的onchange運行以下函數ajax調用一個php腳本,通過sql命中數據庫並返回基於城市的日期,然後將其轉儲到unavalibledates變量中,然後重新運行.datepicker具有禁用日期的日期選擇器JQuery UI問題

這隻能在第一次運行時運行,之後運行沒有更新,但沒有錯誤。我如何使它更新。

function update_datepicker() 
{ 
$.ajax({ 
    type: "POST", 
    url: "scripts/deals.php?val=05&city="+document.getElementById('city_combo').value, 
    success: function (temp2) 
     { 
      var unavailableDates = [eval(temp2)]; 
      function unavailable(date) { 
        dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear(); 
        if ($.inArray(dmy, unavailableDates) == -1) { 
        return [true, ""]; 
        } else { 
        return [false,"","Unavailable"]; 
        } 
       } 

      $('#datepicker').datepicker({ beforeShowDay: unavailable }); 
     } 

     }); 
} 

回答

0

只需添加, $( '#日期選擇器')日期選擇器( 「破壞」)。 之前重新創建它,希望這有助於otehrs

+0

每次創建和銷燬是不是你應該解決這個問題的方式。更新更好。 – Neysor 2012-02-19 19:55:19

1

不創建每次新的日期選擇器,只需更新當前

var unavailableDates; 
function unavailable(date) { 
    dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear(); 
    if ($.inArray(dmy, unavailableDates) == -1) { 
     return [true, ""]; 
    } else { 
     return [false,"","Unavailable"]; 
    } 
} 
var dp = $('#datepicker').datepicker({ beforeShowDay: unavailable }); 
function update_datepicker() 
    { 
    $.ajax({ 
     type: "POST",url: "scripts/deals.php?val=05&city="+$('#city_combo').val(), 
     success: function (temp2) 
     {unavailableDates = [eval(temp2)];} 

    }); 
} 
相關問題