AnyTime datepicker添加一个清除按钮

时间:2014-05-21 02:35:33

标签: javascript jquery datepicker anytime

我是js的新手,我想弄清楚是否有办法修改AnyTime Datepicker中的现有按钮,或添加一个新的,以清除该字段中的日期。

我认为这是一个可能的解决方案,但无法确定将其插入anytime.js的位置以防止AnyTime日期选择器崩溃:

}).keyup(function(e) {
    if(e.keyCode == 8 || e.keyCode == 46) {
        $.datepicker._clearDate(this);
    }
});

好吧,所以我在Chrome / firefox下面有效,但在IE 9中没有。在IE 9中我单击Clear按钮,它会调出日期选择器。如果我在IE中点击两次它将清除该字段。如何让它与IE9兼容:

<tr>
                        <td>
                            <label class="width100 right displayInlineBlock padBottom5">Received:
                                <input class="width70 calendarBackground" type="text" maxlength="4000" name="received" id="received" value="<%=report.getFormattedReceived()%>" />
                                <script>
                                    AnyTime.picker( "received", { format: "%d %b %y", firstDOW: 1 } );
                                </script>
                                <input type="button" id="receivedClear" value="Clear" />
                                <script>
                                    $("#receivedClear").click( function(e) {
                                    $("#received").val("").change(); } );
                                </script>
                            </label>
                        </td>
                    </tr>

谢谢!

1 个答案:

答案 0 :(得分:1)

问题是,当日期字段具有焦点时,选择器出现,并且它不断更新字段以显示当前选择的日期(默认为空时的当前日期)。因此,根据设计,调用change()以调出选择器应该还会使用当前日期/时间填充该字段。

如果要清除该字段,则应该只调用val('')而不是调出选择器。如果要显示选择器,则应该不清除该字段,或者愿意接受选择器将字段重置为当前时间。

我正在开发一个新的选择器,在选择器被解除之前不会自动更新该字段,但是从发布开始还有好几个月。