Datepicker:按esc将占位符文本保留为值

时间:2012-01-27 21:15:24

标签: jquery-ui

我有一个简单的日期选择器,我正在使用几个日期输入。这是代码:

$('input.isDate').datepicker({
    numberOfMonths: 1,
    onSelect: function () {
        $(this).removeClass('placeholder'); //default is to keep placeholder style format
    },                                      
    onClose: function () {
        $(this).focus(); //otherwise focus goes to neverneverland
    }
});

Datepicker显示焦点。两个.isDate输入的占位符值为“Date”。

如果用户在datepicker中按下转义键,则会出现问题。这样做的预期行为是关闭日期选择器并恢复入口处框中的任何文本。在我的例子中,输入框的值成为占位符值。在这一点离开盒子会在框中留下单词“Date”作为硬值而不是占位符提示,因此它会跳过我所拥有的一些字段级日期验证。

我已经能够通过在用户离开框时消隐文本值来处理这个问题,但是当用户逃离日期选择器以手动输入日期时,用户不必擦除该文本。我已经多次尝试使用事件来摆脱这种情况,并且它们都不起作用:我已经尝试了focusin,在keypress中捕获esc,以及在datepicker本身的create,beforeDisplay,onSelect和onClose事件。在所有这些情况下,框的值仍然是“”。很明显,datepicker在完成所有业务后设置了框的值,我认为在这个设计中没有考虑占位符。可能是一个错误?我们正在使用Whitelabel皮肤,所以他们可能会以某种方式干扰datepicker?无论如何,我非常感谢解决方法或解释。我也找不到太多。

TIA

1 个答案:

答案 0 :(得分:0)

在不了解您的应用程序的情况下,我认为您最好使用好的标签并将输入留空。 “HTML5”中还有一个实际的占位符功能。