Ответ 1
Можно вставить фиктивный вход в диалоговом окне, который не имеет высоты, поэтому не будет видно. Поместите его перед полями datepicker.
<input style="height:0px; border:none"/>
В настоящее время у меня есть диалоговое окно с двумя входами в качестве его содержимого (с двумя входами с использованием .datepicker()
). Когда я открываю диалоговое окно, первый вход становится фокусом, и автоматически появляется первый datepicker. Я попытался скрыть div и размыть вход, но это приводит к тому, что datepicker больше не отображается в фокусе.
В идеале я хочу иметь возможность:
Вот мой текущий код:
JAVASCRIPT:
$("#to").datepicker({
onClose: function (selectedDate) {
$("#from").datepicker("option", "minDate", selectedDate);
}
});
$("#from").datepicker({
onClose: function (selectedDate) {
$("#to").datepicker("option", "maxDate", selectedDate);
}
});
$("#settingsDialog").dialog({
autoOpen: false,
open: function (event, ui) {
if ($(".ui-datepicker").is(":visible"))
$(".ui-datepicker").hide();
$("#to").blur();
$this.focus().click();
},
close: function () {
$(this).dialog("close");
}
});
Я также сделал демонстрацию jsfiddle: http://jsfiddle.net/ARnee/19/
Я искал в Интернете решение, и нашел аналогичный questions, но никто, похоже, не помогает. Может ли кто-нибудь помочь мне?!
EDIT:
Браузер, который я использую, - это Chrome.
Можно вставить фиктивный вход в диалоговом окне, который не имеет высоты, поэтому не будет видно. Поместите его перед полями datepicker.
<input style="height:0px; border:none"/>
Попробуйте установить атрибут tabindex на входах, содержащих параметр datepicker, на -1.
<input type="text" id="to" tabindex="-1" />
EDIT:
<input id="to" type="text" tabindex="-1" />
<input id="from" type="text" tabindex="-1" />
Вы можете создать datepickers после открытия диалога, например:
$("#settingsDialog").dialog({
autoOpen: false,
open: function (event, ui) {
//if ($(".ui-datepicker").is(":visible"))
// $(".ui-datepicker").hide();
$("#to").blur();
},
close: function () {
$("#to").datepicker("destroy");
$("#from").datepicker("destroy");
$(this).dialog("close");
}
});
$("#b1").click(function(){
$("#settingsDialog").dialog("open");
$("#to").datepicker({
onClose: function (selectedDate) {
$("#from").datepicker("option", "minDate", selectedDate);
}
});
$("#from").datepicker({
onClose: function (selectedDate) {
$("#to").datepicker("option", "maxDate", selectedDate);
}
});
});
$(document).ready(function(){
$("#settingsDialog").dialog({
autoOpen: false,
open: function (event, ui) {
$("#to").datepicker({
onClose: function (selectedDate) {
$("#from").datepicker("option", "minDate", selectedDate);
}
});
$("#from").datepicker({
onClose: function (selectedDate) { $("#to").datepicker("option", "maxDate", selectedDate);
}
});
if ($(".ui-datepicker").is(":visible"))
$(".ui-datepicker").hide();
$("#to").blur();
$this.focus().click();
},
close: function () {
$("#to").datepicker( "destroy" );
$("#from").datepicker( "destroy" );
$(this).dialog("close");
}
});
$("#b1").click(function(){
$("#settingsDialog").dialog("open");
});
});