这很难解释,但让我们干了。
我可以将#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/
答案 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');
}
});