Javascript 更改jQueryUI的日期选择器的格式会中断与选择列表的同步
多亏了techfoobar,我有了一个带有同步输入字段和选择列表的日期选择器 但是,当我将日期的格式更改为yy-mm-dd时,它停止工作。选择列表中的更改会触发输入中的更改,但单击日期选择器不会更新选择列表 以下是脚本:Javascript 更改jQueryUI的日期选择器的格式会中断与选择列表的同步,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,多亏了techfoobar,我有了一个带有同步输入字段和选择列表的日期选择器 但是,当我将日期的格式更改为yy-mm-dd时,它停止工作。选择列表中的更改会触发输入中的更改,但单击日期选择器不会更新选择列表 以下是脚本: $(function() { $('#selectedDatepicker').datepicker({ dateFormat: "yy-mm-dd", beforeShow: readSelected, onSelect: update
$(function() {
$('#selectedDatepicker').datepicker({
dateFormat: "yy-mm-dd",
beforeShow: readSelected, onSelect: updateSelected,
minDate: new Date(2013, 1 - 1, 1), maxDate: new Date(2013, 06 - 1, 31),
numberOfMonths: 3,
showButtonPanel: true,
showOn: 'both', buttonImageOnly: true, buttonImage: 'http://jqueryui.com/resources/demos/datepicker/images/calendar.gif'});
// Prepare to show a date picker linked to three select controls
function readSelected() {
$('#selectedDatepicker').val($('#selectYear').val() + '-' +
$('#selectDay').val());
return {};
}
// Update three select controls to match a date picker selection
function updateSelected() {
var date1 = $(this).val();
console.log(date1.substring(3, 5));
console.log(date1.substring(6, 10));
$('#selectDay').val(date1.substring(3, 5));
$('#selectYear').val(date1.substring(6, 10));
}
$('select').change(readSelected);
});
这是HTML代码:
<select id="selectDay">
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
...
</select>
<select id="selectYear">
<option value="2013-01">January 2013</option>
<option value="2013-02">February 2013</option>
<option value="2013-03">March 2013</option>
<option value="2013-04">April 2013</option>
<option value="2013-05">May 2013</option>
<option value="2013-06">June 2013</option>
</select>
<p>Date: <input type="text" id="selectedDatepicker" /></p>
您可以在此处查看小提琴:
这个问题是从哪里来的?这两个字段设置了相同的格式。您试图在select元素中选择的值不存在,因为子字符串生成的值与最初的值不同。您需要相应地调整substr
function updateSelected() {
var date1 = $(this).val();
console.log(date1.substring(8));
console.log(date1.substring(0, 4));
$('#selectDay').val(date1.substring(8));
$('#selectYear').val(date1.substring(0, 7));
}
还需要为1-9填充零或从选项中删除前导零values@charlietfl它们是弦,所以不会有什么区别,是吗?它的工作在小提琴的日期<10。尝试它。。。我做过,也不得不做过,我刚刚做过,似乎在按原样工作。这个失败的具体日期是什么?我只尝试了硬编码$select.val'5',没有05就无法工作。