tur*_*zky 29 ajax jquery dialog jquery-ui datepicker
我有一个在jQuery对话框对象中使用的datepicker.使用加载对话框内容的来源.load().在对话框中,我创建了一个脚本,为文本输入创建一个日期选择器.
$("#date").datepicker({ ... });
Run Code Online (Sandbox Code Playgroud)
当我第一次打开对话框时 - 一切都没问题,但如果我关闭它并再次重新打开,则会自动触发datepicker(并且没有这样的选项autoOpen:false)是否有任何方法可以防止这种情况或我做错了什么?
Hup*_*are 33
我发现更简单的方法:
$("#dialogPopper").click(
function() {
$("#date").datepicker("disable");
$("#dialog").dialog("open");
$("#date").datepicker("enable");
return false;
}
);
Run Code Online (Sandbox Code Playgroud)
jso*_*onx 23
当您将datepicker字段放在对话框的开头时,它会自动打开.您可以在对话框的开头放置隐藏的输入.
<input type="text" style="width: 0; height: 0; top: -100px; position: absolute;"/>
Run Code Online (Sandbox Code Playgroud)
bel*_*qua 15
我有这个确切的问题并且只是在tvanfosson的技术上略有不同的变化来解决它.出于某种原因,我不得不手动将"click"事件附加到datepicker字段,如下所示.
$('#dialog').dialog({
open: function(event, ui) {
$(ui).find('#date').datepicker().click(function(){
$(this).datepicker('show');
});
},
close: function(event,ui) {
$(ui).find('#date').datepicker('destroy');
}});
Run Code Online (Sandbox Code Playgroud)
(抱歉 - 我希望将此作为对tvanfosson帖子的评论发布,但没有必要的代表.)
您可能想要在关闭对话框时考虑销毁datepicker,并在对话框的open事件处理程序中创建它,而不是在对话框创建中将其包含为脚本.
$('#dialog').dialog({
open: function(event, ui) {
$(ui).find('#date').datepicker();
},
close: function(event,ui) {
$(ui).find('#date').datepicker('destroy');
}
});
Run Code Online (Sandbox Code Playgroud)
您还可以尝试不同的事件/方法,看看是否真的需要重新创建它,但我认为这样可行.
小智 5
原因是:你的模态形式内的第一个项目是datepicker文本字段,当模式被触发时,活动控件是包含datepicker的控件.
我发现了两种替代解决方案:
更改字段的顺序.避免使用datepicker的人留在第一位.
不要在一段单独的代码中将datepicker设置为字段,在打开对话框的函数内(打开后立即执行$("#dialog").dialog("open");).
| 归档时间: |
|
| 查看次数: |
36829 次 |
| 最近记录: |