Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改jQueryUI的日期选择器的格式会中断与选择列表的同步_Javascript_Jquery_Jquery Ui - Fatal编程技术网

Javascript 更改jQueryUI的日期选择器的格式会中断与选择列表的同步

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

多亏了techfoobar,我有了一个带有同步输入字段和选择列表的日期选择器

但是,当我将日期的格式更改为yy-mm-dd时,它停止工作。选择列表中的更改会触发输入中的更改,但单击日期选择器不会更新选择列表

以下是脚本:

$(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就无法工作。