Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.11.2013, 03:04
Аспирант
Отправить личное сообщение для Хиросим Посмотреть профиль Найти все сообщения от Хиросим
 
Регистрация: 29.04.2010
Сообщений: 28

Самопроизвольное открытие datepicker в диалоговом окне
Всем привет.
Не могу разобраться, прошу подмоги.
Банальная задачка открыть форму с календариком в диалоговом окне. И календарик и окно беру из jQuery UI
Проблема в том, что при открытии окна открывается и календарь, что не желательно. Кроме того - после неудачной валидации формы функцией sendRequest календарь тоже открывается. (функция sendRequest на самом деле кривая, привел ее потомучто не могу понять почему она инициирует окрытие календаря.)
<div id="dialog" style="display:none">
<form action="#" name="request" method="post">
        <label>Дата заезда</label><input class="ahtung" id="request_datepicker" name="request[date_begin]" type="text" readonly="readonly" value="" />
        <input id="obj_id" name="request[obj_id]" type="hidden" value="" />
        <input name="request_submit" type="submit" value="Отправить запрос" />
</form>
</div>

$(function()
{
	$("#dialog").dialog(
	{
		autoOpen: false,
		position: ['center', 'center'],
		modal: true,
		resizable: false,
		width: 750,
		hide: 'explode',
		show: 'fold'
	});
	
	$(".request").click(function()
	{
		$('form[name=request]').submit(sendRequest);
		$("#dialog #obj_id").val($(this).attr('id'));
		$("#dialog").dialog("option", "title", 'Запрос цен и свободных мест для объекта - ' + $(this).attr('name'));
		$("#dialog").dialog("open");
		
		$('#request_datepicker').datepicker(
		{
			dateFormat: "yy-mm-dd",
			minDate: 0
		});
		
	});
	
	function sendRequest()
	{
		$('#dialog .ahtung').each(function()
		{
			if(!$(this).val())
			{
				alert('Не заполнено обязательное поле "' + $(this).siblings('label').html()+ '"'); 
				return false;
			}
		})
		return false;
	}
});
Ответить с цитированием
  #2 (permalink)  
Старый 14.11.2013, 08:49
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Работающий пример где нибудь в fiddle покажи.

Ты не представляешь насколько в лом брат твой скрипт и html вставлять его куда то потом подключать либы, потом дофантазировать где у тебя должен быть html элемент с классом .request так как в html у тебя его нету ну и т.д.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
  #3 (permalink)  
Старый 14.11.2013, 14:30
Аспирант
Отправить личное сообщение для Хиросим Посмотреть профиль Найти все сообщения от Хиросим
 
Регистрация: 29.04.2010
Сообщений: 28

Вот закинул балванку на времянку)
http://igrushkivdom.ru/
Ответить с цитированием
  #4 (permalink)  
Старый 14.11.2013, 14:36
Аспирант
Отправить личное сообщение для Хиросим Посмотреть профиль Найти все сообщения от Хиросим
 
Регистрация: 29.04.2010
Сообщений: 28

Забыл.
Нужно на кнопу "наличие мест" жмакнуть.
В опере валидация формы не открывает календарь, в фаерфоксе открывает
???
Ответить с цитированием
  #5 (permalink)  
Старый 14.11.2013, 18:02
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Я не могу редактировать этот код и проверить свои мысли. К сожалению пока ты не выложишь кусок кода на http://jsfiddle.net/ который я или другие форумчане сможем редактировать то мы не сможем проверять свои идеи и гипотезы. Почему и просил пример для редактирования.

На вскидку могу предложить несложный трюк.
//подключаем datepicker
 $('#request_datepicker').datepicker({
     dateFormat: "yy-mm-dd",
     minDate: 0
 });

//подключаем диалог
$("#dialog").dialog({
     autoOpen: false,
     open: function (event, ui) {
         //если есть открытые datepicker тогда закроем их
         if ($(".ui-datepicker").is(":visible")) $(".ui-datepicker").hide();
      },
      close: function () {
         $(this).dialog("close");
      }
});

//теперь можно открывать диалог
$('какаятокнопка').click(function(){
    $("#dialog").dialog("open");
})
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 14.11.2013 в 18:16.
Ответить с цитированием
  #6 (permalink)  
Старый 14.11.2013, 18:19
Аспирант
Отправить личное сообщение для Хиросим Посмотреть профиль Найти все сообщения от Хиросим
 
Регистрация: 29.04.2010
Сообщений: 28

как пожелаете))
http://jsfiddle.net/bb2G2/
Ответить с цитированием
  #7 (permalink)  
Старый 14.11.2013, 18:40
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

<input id="from" type="text" tabindex="-1" />

вот смотри сам
http://jsfiddle.net/bb2G2/2/


и вот этот способ кстатии тоже работает.
if ($(".ui-datepicker").is(":visible")) $(".ui-datepicker").hide();
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 14.11.2013 в 18:48.
Ответить с цитированием
  #8 (permalink)  
Старый 14.11.2013, 19:05
Аспирант
Отправить личное сообщение для Хиросим Посмотреть профиль Найти все сообщения от Хиросим
 
Регистрация: 29.04.2010
Сообщений: 28

DjDiablo,
Спасибо.
А гдето можно прочитать о физике процесса? Хочется же понять как жыкверя работает, она что при открытии диалогового окна по всем инпутам фокусом пробегает ??? если да, то нахрена?? ну и т.д.

Последний раз редактировалось Хиросим, 14.11.2013 в 19:11.
Ответить с цитированием
  #9 (permalink)  
Старый 14.11.2013, 19:05
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Вот еще одна демка
http://jsfiddle.net/bb2G2/4/

Почитать разве что в исходниках. Думаю просто фокус на первое поле устанавливается при открытии диалога.
Если datepicker будет вторым полем а не первым то открываться он не будет.
Вот пример http://jsfiddle.net/bb2G2/5/
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 14.11.2013 в 19:31.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формирование option в диалоговом окне Jopses Javascript под браузер 0 05.02.2013 14:16
открытие в новом окне BARABANTEMO Общие вопросы Javascript 2 12.10.2012 01:00
Автоматическое открытие другой страницы в новом окне при загрузке первой yavaa Общие вопросы Javascript 7 07.05.2012 20:34
Открытие ссылки в новом фиксированном окне vitallka Элементы интерфейса 4 08.06.2011 22:16
Открытие страницы в новом окне vah-smile Общие вопросы Javascript 1 13.11.2010 04:15