关键词:
【中文标题】日期选择器自动打开【英文标题】:Date Picker automatically opens 【发布时间】:2012-04-02 17:47:52 【问题描述】:我有一个 javascript 代码,我想使用它来完成以下任务。我希望当我单击按钮时出现一个表单,但 datepicker 的日期选择选项不会自动出现(但在我的情况下它会打开)。所以换句话说,我想禁用那个 autoopen 。这是脚本
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery.ui.all.css" type="text/css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function ()
$("#button").click(function ()
var dates2 = $("#datePicker3,#datePicker4").datepicker(
autoOpen: false,
minDate: 0,
changeMonth: true,
numberOfMonths: 1,
onSelect: function (selectedDate)
var option = this.id == "datePicker3" ? "minDate" : "maxDate",
instance = $(this).data("datepicker"),
date = $.datepicker.parseDate(
instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
dates2.not(this).datepicker("option", option, date);
calculate_total_price();
); ///
$("#order-popup").dialog();
$("#order-popup").show();
);
);
</script>
<input type="button" value="addclass" id="button">
<div id="order-popup" style="display:none;" class="popup-content already-ordered">
<input type="text" id="datePicker3" name="datepickerFrom" value="">
<br/>
<input type="text" id="datePicker4" name="datepickerTo" value="" style="margin-top:10px;margin-left:17px">
</form>
</div>
</body>
【问题讨论】:
有什么用吗? ***.com/questions/932420/… 我会重新设计日历并将该字段设为只读,并且仅在您单击按钮打开日历时才提交数据 【参考方案1】:datepicker
立即显示的原因是,datapicker
加载的input
默认具有focus
.. see here - 这是因为它是表单上的第一个input
.. .. 如果您在第一个之前添加另一个 input
就可以了 - > http://jsfiddle.net/JXtBM/1/
解决此问题的一种方法是使用按钮来触发日期选择器的打开:
showOn: "button",
buttonImage: "http://jqueryui.com/demos/datepicker/images/calendar.gif",
buttonImageOnly: true,
Working example here
【讨论】:
@user1204905 你为什么要这样做?您将向我点击输入 - 这将打开日期选择器! 你说“加载数据选择器有焦点”,我想要完全相反。 @user1204905 更新了我的答案 - 您可以使用与焦点不同的触发器 .. 例如按钮 @user1204905 第二个链接在对话框中有一个额外的input
- 默认情况下,对话框中的第一个input
获得焦点,因此在日期选择器之前插入input
意味着它不会启动默认
能否给我一个最终答案或最终链接(不是每秒都修改)【参考方案2】:
如果您不希望将焦点放在日期选择器上,您可以在它们之前放置另一个输入并使其“不可见”
<input type="button" value="addclass" id="button">
<div id="order-popup" style="display:none;" class="popup-content already-ordered">
<input style="height:0px; top:-1000px; position:absolute" type="text" value="">
<input type="text" id="datePicker3" name="datepickerFrom" value="">
<br/>
<input type="text" id="datePicker4" name="datepickerTo" value="" style="margin-top:10px;margin-left:17px">
</form>
</div>
在这种情况下,输入的高度为 0px,并且在屏幕之外,因此不会显示。请记住,应始终选择日期,由于日期格式、分隔符等,允许用户书写是有风险的......
【讨论】:
Excellet,因为我希望 DatePicker 正常工作(不喜欢额外的按钮)。 很遗憾我们不得不为这样一个简单的问题进行这样的破解,但这是唯一对我有用的解决方案。【参考方案3】:正如 ManseUK 所说,这是因为对话框方法会自动选择父元素中的第一个“可选项卡”元素。这样做是硬编码的,如another question所示。
一种解决方法(我认为这看起来很奇怪,但很有效)是为输入上方的另一个元素设置选项卡索引,如下所示:
<div id="order-popup" style="display:none;" class="popup-content already-ordered">
<p tabindex="1">Choose Dates:</p>
<input type="text" id="datePicker3" name="datepickerFrom" value="" />
<input type="text" id="datePicker4" name="datepickerTo" value="" style="margin-top:10px;margin-left:17px" />
</div>
【讨论】:
我刚刚输入了那个 p 标签,然后就隐藏了。一切正常,谢谢。 小心隐藏它。在我的测试中,将其设置为 display:none 会导致它被跳过,因此输入再次成为焦点。 老实说,我没有理解你的意思,但隐藏空白 p 标签效果很好。在这种情况下你的东西有什么问题吗? 如果你的 p 标签是空的,唯一的问题是谷歌浏览器会在焦点周围设置一个光环,这样看起来很有趣。为避免这种情况,请将其添加到 p 元素:style="outline:none;"
谢谢安东尼。我忘了说我没有隐瞒什么。在按照您想要的方式进行样式设置后,也没有发现 chrome 有任何区别【参考方案4】:
将标签索引设置为另一个元素有助于解决问题,如下所示:
**<label tabindex="1">From Date:</label>**
<input type="text" name="from_date" id="from_date" readonly="readonly" class="hasDatepicker">
<label>To Date</label>
<input type="text" name="to_date" id="to_date" readonly="readonly" class="hasDatepicker">
【讨论】:
【参考方案5】:创建后触发“模糊”为我解决了这个问题。 我认为这是一种解决方法,但它确实有效。
我不想添加一个按钮来打开日历,也不想在我的文档中添加额外的输入。
$('[data-datepicker="datepicker"]').datepicker().trigger('blur');
【讨论】:
老实说,唯一对我来说在所有浏览器中都能完美运行的解决方案(其他解决方案在 Safari 中不起作用)。谢谢! 这对我不起作用。也许这取决于jQuery版本?我正在使用 1.9 您确定在正确的时间调用代码吗?我不确定这条线是否仍然适用于更新版本。您可以通过直接从浏览器 concole 调用该行来测试这一点。【参考方案6】:尝试将日期选择器初始化放在文档就绪回调中,如下所示:
$(document).ready(function()
var dates2 = $( "#datePicker3,#datePicker4" ).datepicker(
autoOpen:false,
minDate:0,
changeMonth: true,
numberOfMonths: 1,
onSelect: function( selectedDate )
var option = this.id == "datePicker3" ? "minDate" : "maxDate",
instance = $( this ).data( "datepicker" ),
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings );
dates2.not( this ).datepicker( "option", option, date );
calculate_total_price();
);
);
而点击功能只包含:
$("#order-popup").dialog();
$("#order-popup").show();
我不是 100% 确定这会起作用,但至少是进行初始化的正确方法(如果页面上已经有它,请在准备就绪时进行初始化)
【讨论】:
【参考方案7】:你可以通过在 $("#order-popup").show(); 之后移除焦点来解决这个问题
$(document).ready(function ()
$("#button").click(function ()
var dates2 = $("#datePicker3,#datePicker4").datepicker(
autoOpen: false,
minDate: 0,
changeMonth: true,
numberOfMonths: 1,
onSelect: function (selectedDate)
var option = this.id == "datePicker3" ? "minDate" : "maxDate",
instance = $(this).data("datepicker"),
date = $.datepicker.parseDate(
instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
dates2.not(this).datepicker("option", option, date);
calculate_total_price();
); ///
$("#order-popup").dialog();
$("#order-popup").show();
$('#datePicker3, #datePicker4').blur();
);
);
【讨论】:
【参考方案8】:最好的选择是在另一个元素上设置“autofocus”属性。当 jquery 打开对话框时,它将查找具有 autofocus 属性的元素并将焦点设置为它。如果没有找到,则将焦点设置到第一个可见元素。<input type="text" id="txtDescription" autofocus />
【讨论】:
【参考方案9】:我解决了这个问题,将其添加为表单中的第一个字段。
【讨论】:
在日期选择器中选择日期后如何打开时间选择器
】在日期选择器中选择日期后如何打开时间选择器【英文标题】:Howtoopentimepickerafterselectingdateindatepicker【发布时间】:2020-02-2111:53:49【问题描述】:当日期选择器返回selecteddate时,代码应自动显示时间选择器。当时间选择器返... 查看详情
jQuery:日期选择器开始在对话框中打开,仅在 IE 中
】jQuery:日期选择器开始在对话框中打开,仅在IE中【英文标题】:jQuery:Datepickerstartsopenedindialog,onlyinIE【发布时间】:2012-06-0319:43:13【问题描述】:我在使用jQuery对话框时发现了一个有趣的错误,其中对话框中的第一个字段是日... 查看详情
按 esc 后无法打开日期选择器
】按esc后无法打开日期选择器【英文标题】:Unabletoopendatepickerafterpressingesc【发布时间】:2021-11-1909:22:54【问题描述】:我在只读文本框上有angularjs日期选择器,单击文本框时,会弹出日期选择器,按esc关闭日期选择器,但再次... 查看详情
选择日期后引导日期选择器不会自动关闭
】选择日期后引导日期选择器不会自动关闭【英文标题】:Bootstrapdatepickernotcloseautomaticallyafterpickingadate【发布时间】:2014-04-2604:01:20【问题描述】:我使用最新的Bootstrapdatepicker.js。一切正常,除了当我从下拉列表中选择一个日... 查看详情
点击图标打开 HTML5 日期选择器
】点击图标打开HTML5日期选择器【英文标题】:OpenHTML5datepickeroniconclick【发布时间】:2013-08-2200:40:16【问题描述】:我有一个HTML5日期选择器。当我单击日期选择器文本框时,它会打开。待办事项:我必须将事件更改为图标,但... 查看详情
图像/图标打开日期选择器
】图像/图标打开日期选择器【英文标题】:Animage/iconopensthedateselector【发布时间】:2015-07-1103:43:50【问题描述】:我有一个HTML/PHP网站,其中有一个图像图标(看起来像一个日历),我希望用户单击并打开默认的日期选择器。用... 查看详情
检查日期选择器是不是打开
】检查日期选择器是不是打开【英文标题】:Checkifdatepickerisopen检查日期选择器是否打开【发布时间】:2011-02-1607:37:57【问题描述】:我有一个带有日期选择器的字段。我想知道它是否开放。我试过了:$("#filter_date").datepicker("widg... 查看详情
打开日期选择器上的今天按钮
】打开日期选择器上的今天按钮【英文标题】:TurnonTodaybuttonondatepicker【发布时间】:2013-06-0504:31:42【问题描述】:我正在使用来自此来源http://jqueryui.com/datepicker/#buttonbar的日期选择器,我正在尝试让按钮栏上的“今天”按钮处... 查看详情
保持引导日期选择器始终打开
】保持引导日期选择器始终打开【英文标题】:keepbootstrapdatepickeralwaysopen【发布时间】:2018-06-2314:36:47【问题描述】:希望日期选择器始终可见,而不是在单击日历时。所以我只是想知道如何实现这一目标。我正在尝试KeepOpen=tru... 查看详情
在引导程序日期选择器中禁用日期的自动格式化
】在引导程序日期选择器中禁用日期的自动格式化【英文标题】:DisableAutoformattingofdateinbootstrapdatepicker【发布时间】:2018-05-2902:06:57【问题描述】:如果有人在日期选择器中手动输入无效日期(例如“%/4/12”),它会自动将其格... 查看详情
单击跨度时打开日期选择器
】单击跨度时打开日期选择器【英文标题】:Opendatepickeronspanclick【发布时间】:2018-04-0622:35:19【问题描述】:我的搜索表单如下。<divclass="search-bar-wrappercontainer-fluid"><divclass="row"><divclass="col-md-2"></div><divclass="c... 查看详情
Perl CGI 日期和时间选择器,自动填充当前日期和时间
】PerlCGI日期和时间选择器,自动填充当前日期和时间【英文标题】:PerlCGIDateandTimepickerwithautopopulatewithcurrentdateandtime【发布时间】:2017-01-2218:58:16【问题描述】:我已经使用perl创建了一个CGI表单,一切都很好,除了我很难找到... 查看详情
HTML5 日期选择器仅在第二次点击时打开
】HTML5日期选择器仅在第二次点击时打开【英文标题】:HTML5Datepickeropensuponlyon2ndclick【发布时间】:2014-10-2609:35:57【问题描述】:我正在为我的日期日历日期框使用HTML5日期选择器(inputtype="date")。但是在Nexus7Chrome36和Motoroll... 查看详情
根据月份文本自动化日期选择器
】根据月份文本自动化日期选择器【英文标题】:Automatedate-pickerbasedonmonthtext【发布时间】:2021-10-3122:38:01【问题描述】:我正在尝试自动化页面上的日期选择器,并且我想点击上一个/下一个按钮,直到我到达日历中所需的月份... 查看详情
使用 Alpine 创建一个“始终打开的日期选择器”|活线
】使用Alpine创建一个“始终打开的日期选择器”|活线【英文标题】:Creatingan\'alwaysopendatepicker\'withAlpine|Livewire【发布时间】:2020-11-2008:35:35【问题描述】:我正在尝试使用Livewire和Alpine创建一个刀片组件作为日期选择器。我使用... 查看详情
通过单击复选框打开日期选择器并设置新日期
】通过单击复选框打开日期选择器并设置新日期【英文标题】:Openadatepickerbyclickingoncheckboxandsetnewdate【发布时间】:2017-10-1406:56:53【问题描述】:我正在使用bootstrap-datepicker-rails,有一个问题我无法解决。我有以下结构:<divcla... 查看详情
如何在 xamarin android ui 测试自动化中使用日期选择器
】如何在xamarinandroidui测试自动化中使用日期选择器【英文标题】:howtoworkwithdatepickerinxamarinandroiduitestautomation【发布时间】:2017-02-2710:31:05【问题描述】:我在xamarinandroidUI自动化中工作,我只是想知道如何从android日期选择器中... 查看详情
使 eternicode 日期选择器在点击时打开,而不是焦点
】使eternicode日期选择器在点击时打开,而不是焦点【英文标题】:Makeeternicodedatepickeropenonclick,notfocus【发布时间】:2014-01-0521:13:27【问题描述】:eternicodetwitterbootstrapdatepicker会在其附加到的<input>字段获得焦点时立即弹... 查看详情