1

我希望用户可以选择特定日期,或者可以填写“xyz”。我尝试过使用constrainInput = false,但允许用户输入任何内容。我只希望用户只能编写或选择“xyz”。

4

2 回答 2

0

您可以测试日期输入值:

$('#datepicker').datepicker({
    constrainInput: false,
    dateFormat: "dd/mm/yy"
}).on("change", function () {
    // Accepts xyz as the value
    if ($(this).val() == "xyz")
        return true;

    // Accepts just valid dates as the value
    var comp = $(this).val().split('/');
    var m = parseInt(comp[0], 10);
    var d = parseInt(comp[1], 10);
    var y = parseInt(comp[2], 10);
    var date = new Date(y,m-1,d);

    if (date.getFullYear() == y && date.getMonth() + 1 == m && date.getDate() == d)
        return true;

    alert("Wrong");        
});

测试:http: //jsfiddle.net/sFBn2/9/

于 2013-09-05T10:53:45.860 回答
0

如果您只想选择一天,为什么不禁用该字段上的输入并仅使用日期选择器,而日期选择仅限于它呢?

禁用字段使用readonly输入属性,日期选择器日期限制使用该beforeShowDay功能。

HTML:

<input type='text' id='foo' readonly='true'>

jQuery:

$('#foo').datepicker({
    constrainInput: false,
    dateFormat: "dd/mm/yy",
    beforeShowDay: function (date) {
        var today=new Date();
        if (date.getDate() == today.getDate()) {
            return [true, ''];
        }
        return [false, ''];
    }
}); 

演示:http: //jsfiddle.net/IrvinDominin/qdBkZ/

于 2013-09-05T11:03:02.837 回答