按下按钮显示jQueryUI datepicker,不涉及输入字段

Tom*_*ing 5 javascript asp.net jquery-ui jquery-ui-datepicker

在ASP.NET项目中,我正在寻找一种方法,当我按下按钮时出现jQueryUI日期选择器,然后在选择日期时引发回发.我已经使用这种方法使用回发部分工作,但是当我想要它时让我的选择器消失或者在选择日期时表现正常我遇到了麻烦.

我试过了:

  • 将选择器附加到按钮本身,但它在我选择之后和回发发生之前将按钮的文本设置为所选日期,这是我不想要的.
  • 将选择器附加到按钮并将altField选项设置为<input type='text' />位于浏览器窗口外部的选项,但在选择日期时仍然设置按钮的文本.
  • 通过将其附加到a divonclick在按钮中创建它来使其内联.但是根据这篇论坛帖子,设计的内联日期选择器没有显示完成按钮,我不能通过点击它来解除它.
    • 我尝试将我自己的Done按钮添加到datepicker的按钮容器中(显示showButtonPanel设置的时间),但是当月份或年份发生变化时它会消失,我可以绑定的任何事件似乎都不允许我将其添加回来.
    • 我尝试将一个mouseup处理程序附加到文档正文,因此当我在其外部单击时我可以忽略日期选择器,但是当我单击datepicker时触发它,并且似乎阻止了选择器的工作.

这里最好的方法是什么?

And*_*ker 7

之前我使用了一个隐藏input字段,并在其上附加了一个datepicker并获得了成功的结果:

$("#date").datepicker({...}); // #date has style display='none'

$("#show-date").click(function () {
    $("#date").datepicker("show");
});
Run Code Online (Sandbox Code Playgroud)

示例: http ://jsfiddle.net/7pttr/

  • 这是在一些摆弄之后起作用的.有趣的是,我在`$('#myHiddenInput')上遇到Javascript错误.datepicker('show');`如果隐藏的输入不是其父项的第一个子项.整蛊! (5认同)