2012-06-09 3 views
5

Я использую JQuery Timepicker.JQuery TimePicker: как динамически изменять параметры

У меня есть два поля ввода - чтобы принять время.

<input id="startTime" size="30" type="text" /> 
<input id="endTime" size="30" type="text" /> 

Я использую таймер Jquery UI, как на documentation

$('#startTime').timepicker({ 
    'minTime': '6:00am', 
    'maxTime': '11:30pm', 
    'onSelect': function() { 
     //change the 'minTime parameter of #endTime <--- how do I do this ? 
    } 
}); 
$('#endTime').timepicker({ 
    'minTime': '2:00pm', 
    'maxTime': '11:30pm', 
    'showDuration': true 
}); 

Я хочу, что при выборе первой timePicker, параметр «minTime» для второй получает изменилось. В основном я пытаюсь собрать время начала и время окончания определенной активности. И я хочу, чтобы во втором поле ввода отображались параметры из значения первого поля ввода (время начала).

+0

Я думаю, что тот же самый вопрос был бы справедлив и для других элементов JQuery, а также. –

+0

Эта страница имеет пример (последний), где он делает это вместе с [источником] (http://jonthornton.github.com/jquery-timepicker/lib/datepair.js). – sachleen

ответ

6

Вы бы сделать что-то вроде этого,

$('#startTime').timepicker({ 
       'minTime': '6:00am', 
       'maxTime': '11:30pm', 
        'onSelect': function() { 

        $('#endTime').timepicker('option', 'minTime', $(this).val());       
       } 
      }); 

Что вы здесь делаете, что в onSelect функции #startTime, вы установите параметр minTime от #endTime до значения #startTime

See это JS Fiddle.

+0

Удивительный! Спасибо друг . Это сработало. Приветствия! –

+3

это не работает для меня, а также ваш JS Fiddle –

+1

Этот JS Fiddle не показывает никаких изменений minTime. Это всегда 2PM – ivanacorovic

4

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

$(...).widget_name('method_name', arg...) 

так это должно работать для вас:

$('#endTime').timepicker('option', 'minTime', new_min_time) 
+0

Спасибо, сэр! Это было полезно :) –

+0

Опция работает отлично, это должно быть отмечено как правильный ответ! – ivanacorovic

6

Вы можете пойти на OnChange событие:

 $('#startTime').timepicker(); 

     $('#endTime').timepicker({ 
      'minTime': '12:00am', 
      'showDuration': true 
     }); 

     $('#startTime').on('changeTime', function() { 
      $('#endTime').timepicker('option', 'minTime', $(this).val()); 
     }); 

Я изменил код, размещенный в первом ответе, вот рабочая скрипка для него http://jsfiddle.net/NXVy2/215/

Вы можете использовать на («изменить» ... слишком

$('#startTime').on('change', function() { 
     $('#endTime').timepicker('option', 'minTime', $(this).val()); 
    }); 
+0

Принятый ответ не работает (больше?), Но этот работает отлично для меня. – nematoth

+0

Это правильный ответ! Спасибо за это – marknt15