选择项目的可更改和默认值

时间:2013-10-08 15:54:01

标签: jquery

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

我可以将#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'); 
        }

});

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

2 个答案:

答案 0 :(得分:0)

您正在重置用户更改后的两个控件的值。显然,这会导致用户无法真正做出改变。

代码应该在开始时执行一次,而不是在用户进行更改时执行,因此只丢失.change处理程序。简化一点,然后你需要的只是

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

答案 1 :(得分: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'); 
        }

});

Updated fiddle

相关问题