我在 ASP.NET Web 应用程序中有一个日期选择器,默认设置为今天的日期。我们有一个图标,单击该图标时需要清除该日期(并可能将“dd/mm/yyyy”作为文本添加回日期输入中的一些描述性文本)。我添加了一个图标并在其上创建了一个单击事件处理程序,但在将日期设置为空时遇到问题。
$('#dt-clr').click( function(){
$(this).closest(".datepicker").val('dd/mm/yyyy');
});
我什至在上面的事件处理程序中尝试过“destroy”和 ('setDate', ''),但如果这是最好的方法,我一定不能正确引用它。
有什么想法吗? :s
更新: 最终意识到我的图标与日期选择器位于同一 DOM 级别,因此最接近的图标不起作用(Gaby 也注意到了这一点,请参阅下面的评论)。所以我的代码:
$(this).siblings(".datepicker").datepicker( 'setDate' , null )
...删除日期并留下一个空白的日期文本框。只需要弄清楚如何添加字符串“dd/mm/yyyy”而不是我的空框。
更新2: 好的,这有效。可能有更好的方法,如果有请告诉我:
$(this).siblings(".datepicker").datepicker( 'setDate' , null );
$(this).siblings(".datepicker").val('dd/mm/yyyy');
最佳答案
你试过吗
$(this).closest(".datepicker").datepicker( 'setDate' , null )
http://docs.jquery.com/UI/Datepicker#method-setDate
[更新](在您发表评论后)
看看我制作的这个例子:http://jsbin.com/obudu/4
对于所有已检查的浏览器都可以正常工作...
我刚刚注意到您使用了 jQuery 的 .closest
方法。很可能这就是导致问题的原因。 $(this).closest(..)
不得返回任何内容。closest
上升到 DOM tree,这意味着您的日期选择器对象必须是 icon 的父对象..
给出一些关于html结构的代码。与日期选择器相关的图标在哪里..
关于jquery ui日期,从图标设置日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2269673/