1
我遇到了jQuery移動日期框插件的問題。動態填充受限制日期的jQuery移動日期框
在我的代碼中,我正在生成ISO8601格式的日期數組,因爲這是日期框需要的。
我在ajax方法被調用並且帶回了一些結果(響應用戶輸入)後生成這個數組。我然後使用jQuery .attr功能添加數據選項屬性我的「calbox」節點,看起來像這樣:
<input name="mydate" id="mydate" type="date" data-role="datebox">
我的jQuery代碼看起來是這樣的:
$("#NewPaymentPlans").attr("data-options", '{"mode": "calbox", "enableDates": ' + DateString + ' }');
DateString是轉換成字符串的日期數組。
輸出HTML看起來像這樣:
<input name="NewPaymentPlans" id="NewPaymentPlans" type="text" data-role="datebox" class="ui-input-text ui-body-c" readonly="readonly" data-options="{"mode": "calbox", "enableDates": ["2013-08-06", "2013-08-07", "2013-08-08", "2013-08-09", "2013-08-10", "2013-08-11", "2013-08-12", "2013-08-13", "2013-08-14", "2013-08-15", "2013-08-16", "2013-08-17", "2013-08-18", "2013-08-19", "2013-08-20", "2013-08-21", "2013-08-22", "2013-08-23", "2013-08-24", "2013-08-25", "2013-08-26", "2013-08-27", "2013-08-28", "2013-08-29", "2013-08-30", "2013-08-31", "2013-09-01", "2013-09-02", "2013-09-03", "2013-09-04"] }">
(& QUOT;顯示爲在由Chrome顯示的HTML雙引號)。
從我所看到的,這應該工作。我做了一個測試,在這裏我使用了我的輸出代碼,並填充了數據選項選項,以便使用它們加載它的頁面並工作。
我認爲動態分配數據選項屬性可能會有問題。有人對此有更多瞭解嗎?
編輯:解決!
我已經想通了。
$("#NewPaymentPlans").data('mobileDatebox').options.enableDates = arrayofdates
$('#NewPaymentPlans').datebox('refresh');
與此功能組合:
function CreateDateArray(arrayofdates) {
var datesarray = [];
var stringofdates;
$.each(arrayofdates, function (i) {
datesarray.push(arrayofdates[i].toISOString().substring(0, 10));
});
return datesarray
}
在調試窗口中查看$('#NewPaymentPlans')。data('mobileDatebox')。選項(chrome developer tools,firebug,whatever)。如果它是一個充滿單詞的選項,請查看enable-dates是否真的是用日期數組設置的 - 如果它首先是一串字母,這意味着datebox和/或jscript在處理數據時遇到問題 - 選項 –
有時候只需在封裝的