我是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>
谢谢!
答案 0 :(得分:1)
问题是,当日期字段具有焦点时,选择器出现,并且它不断更新字段以显示当前选择的日期(默认为空时的当前日期)。因此,根据设计,调用change()
以调出选择器应该还会使用当前日期/时间填充该字段。
如果要清除该字段,则应该只调用val('')
而不是调出选择器。如果要显示选择器,则应该不清除该字段,或者愿意接受选择器将字段重置为当前时间。
我正在开发一个新的选择器,在选择器被解除之前不会自动更新该字段,但是从发布开始还有好几个月。