2012-06-15 2 views
2

У меня есть выбор с 20 вариантами, и когда пользователь выбирает только одну опцию «Выбрать дату» должен появиться сборщик даты (времени) и , а затем введите текст времени даты в поле ввода.Могу ли я вызвать функцию выбора даты (времени) из функции?

Возможно ли это? Как я могу это сделать?

У меня есть (сборщик), работающий прямо сейчас. Он запускается кнопкой и привязывается к ящику ввода. Но я хочу изменить, как это работает в настоящее время с моими конкретными потребностями.

Вопрос1: Я знаю, как запускать функцию при замене выбора. Затем я фильтрую параметры, и если это тот, я каким-то образом начинаю выбор даты. Я не знаю, как это сделать.

Question2: Я не знаю, как сообщить о выборе даты, чтобы добавить текст даты в существующее текстовое поле. Возможно, я смогу связать таймер таймера с текстовым полем.

  • JQuery-1.7.2.min.js
  • JQuery-UI-1.8.21.custom.min.js
  • JQuery-UI-timepicker-addon.js

Обновление

В jsfiddle sample У меня есть выбор и текстовое поле. Кнопка создается с помощью выбора даты/времени.

Что я хочу:

  • , когда пользователь выбирает/щелкает «выберите дату и время» вариант даты/время выбор появится и текст будет находиться в текстовом поле
  • Я не» т хочет, чтобы кнопка будет видна на странице
  • я использую текстовое поле для других целей, не только для даты/времени, поэтому даты/время выбор не может появляться какими-либо действия пользователя, связанных с этим текстовым полем

html co де от образца

<input id="datetime" type="text" name="datetime" value="" > 
<select size=5> 
    <option value="not">Not this one</option> 
    <option value="not">Not this one</option> 
    <option value="not">Not this one</option> 
    <option value="datetimepicker">Select date and time</option> 
</select> 

Javascript код из образца

$('#datetime').datetimepicker({ 
    showOn: "button" 
});​ 

Примечание: окончательный рабочий вариант, как описано выше: http://jsfiddle.net/radek/dPRjS/8/

+0

Пожалуйста, разместите код, который у вас есть. Мне тоже будет полезно jsFiddle. – j08691

+0

jsfiddle и код примера добавлен – Radek

ответ

2

здесь вы идете. взгляните на эту демонстрационную версию jsfiddle.

here's the fiddle

чувствовать себя свободно переделан код, чтобы улучшить его.

+0

Работает хорошо, но сборщик появляется также, если я нажимаю текстовое поле. Это не должно. – Radek

+0

вот краткий обзор. обратите внимание на правила css, чтобы сделать эту работу, как вы описали: [скрипт demo # 2] (http://jsfiddle.net/nickadeemus2002/gP3Ge/) – chrisvillanueva

+0

Noooow работает по своему желанию. Спасибо. – Radek

1

Попробуйте это:

$('#datetime').datetimepicker(); 
$('option[value=datetimepicker]').click(function() { 
    $('#datetime').datetimepicker('show'); 
});​ 

Чтобы ответить ваш основной вопрос, плагин datetimepicker является расширением дампикера jQueryUI wid get и имеет доступ ко всем его методам, включая метод show. Таким образом, вы можете программно вызывать шоу, чтобы открыть сборщик, когда вам нужно.

jsFiddle example.

+0

Благодарим вас за объяснение и решение. – Radek

+0

Работает хорошо, но сборщик появляется также, если я нажимаю текстовое поле. Это не должно. – Radek

+0

Итак, позвоните с кнопки. – j08691

1

отвечает на ваши вопросы в обратном порядке ....

Datepicker обычно «прикреплен» к коробке ввода. Нет необходимости указывать datepicker, чтобы поместить выбранную дату в поле ввода. Datepicker просто делает это, когда он закрывается, т.е. когда пользователь выбирает дату.

Это оставляет трюк, как открыть датпикер на основе какого-либо внешнего события. Обычно датапикер открывается автоматически щелчком в прикрепленном поле ввода. Вы хотите, чтобы он автоматически открывался с изменением выбора/выпадающего списка.

Это работает для меня:

ЯШ:

$(document).ready(function() { 
    var $dp = $('#date1').datepicker({}); 

    $('#select1').change(function() { 
     // programmatically open the datepicker 
     $dp.datepicker('show'); 
    }); 
}); 

HTML:

<input type="text" id="date1" size="12"> 
<br/> 
<select id="select1"> 
    <option>Hello</option> 
    <option>Bonjour</option> 
    <option>Buon giorno</option> 
    <option>Guten tag</option> 
</select>