2013-10-08 6 views
0

Это очень сложно объяснить, но давайте сушим.Сменные значения и значения по умолчанию для отдельных элементов

можно установить значение #breakhourdropdown и #breakminutedropdown(они <select> -элементов) к '00' или '30' если переменная worktimewithoutbreak больше или выше, чем 21600.

Для этих элементов должны быть значения по умолчанию.

Но если пользователь хочет выбрать другое значение, щелкнув элементы <select>, ничего не изменится.

Должна быть опция, согласно которой пользователь может изменить значения по умолчанию этих двух элементов.

$("#breakhourdropdown,#breakminutedropdown").change(function() {  

     var worktimewithoutbreak = 25000; 

     if (worktimewithoutbreak >= 21600) { 
          var breakhour = $('#breakhourdropdown').val('00'); 
          var breakminutes = $('#breakminutedropdown').val('30'); 
      } 
     if (worktimewithoutbreak <= 21600) { 
          var breakhour = $('#breakhourdropdown').val('00'); 
          var breakminutes = $('#breakminutedropdown').val('00'); 
     } 

}); 

EDIT: Демонстрация проблемы:http://jsfiddle.net/XrcfM/

+0

Сделать jsfiddle с кодом, чтобы продемонстрировать вашу проблему. – Palpatim

+0

@Palpatim Я добавил демо-код с проблемой на вопрос. http://jsfiddle.net/XrcfM/ – Mike

ответ

0

Вы сброс значения двух элементов управления после того, как пользователь изменяет их. Очевидно, это приводит к тому, что пользователь действительно не в состоянии внести изменения.

Код должен выполняться только один раз, в начале, а не когда пользователь вносит изменения, поэтому просто теряйте обработчик .change. Упрощая немного, все, что вам нужно, то становится

var worktimewithoutbreak = 25000; 
$('#breakhourdropdown').val('00'); 
$('#breakminutedropdown').val(worktimewithoutbreak >= 21600 ? '30' : '00'); 
0

Вы «изменение» слушатель события изменения выбора значений ко времени загрузки страницы по умолчанию событий пользователь вручную изменяет их.

Изменение JavaScript для:

$(document).ready(function() {  

     var worktimewithoutbreak = 25000; 

     if (worktimewithoutbreak >= 21600) { 
          var breakhour = $('#breakhourdropdown').val('00'); 
          var breakminutes = $('#breakminutedropdown').val('30'); 
      } 
     if (worktimewithoutbreak <= 21600) { 
          var breakhour = $('#breakhourdropdown').val('00'); 
          var breakminutes = $('#breakminutedropdown').val('00'); 
     } 

}); 

Updated fiddle

Смежные вопросы