0

这很难解释,但让我们干杯吧。

我可以将#breakhourdropdownand的值#breakminutedropdown (它们是<select>元素)设置为'00'或者'30'如果变量worktimewithoutbreak大于或高于21600.

它们应该是这两个元素的默认值

但是,如果用户想通过单击<select>-elements 来选择另一个值,则不会发生任何变化。

应该有选项,用户可以更改这两个元素的默认值

$("#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'); 
        }

});

编辑:问题演示:http: //jsfiddle.net/XrcfM/

4

2 回答 2

0

在用户更改它们后,您正在重置这两个控件的值。显然,这会导致用户无法真正进行更改。

代码应该在开始时只执行一次,而不是在用户进行更改时执行,因此只需丢失.change处理程序。稍微简化一下,你所需要的就变成了

var worktimewithoutbreak = 25000;
$('#breakhourdropdown').val('00');
$('#breakminutedropdown').val(worktimewithoutbreak >= 21600 ? '30' : '00');
于 2013-10-08T19:33:23.650 回答
0

您正在“更改”事件侦听器正在将 SELECT 值更改回用户手动更改它们的页面加载默认事件时间。

将您的 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'); 
        }

});

更新的小提琴

于 2013-10-08T20:06:29.620 回答