Jquery 复杂选择更改另一个选择。。没问过
我的问题解释起来相当简单,但实现起来有点棘手。从逻辑上讲,这似乎很有可能,但我有点卡住了 目标/宗旨: 我的第一个选择名为hour,第二个选择名为rec_hour。每个都有相同的值。请参见下面的HTML代码:Jquery 复杂选择更改另一个选择。。没问过,jquery,select,onchange,Jquery,Select,Onchange,我的问题解释起来相当简单,但实现起来有点棘手。从逻辑上讲,这似乎很有可能,但我有点卡住了 目标/宗旨: 我的第一个选择名为hour,第二个选择名为rec_hour。每个都有相同的值。请参见下面的HTML代码: <select id="hour"> <option value="0">00</option> <option value="1">01</option> <option value="2">02<
<select id="hour">
<option value="0">00</option>
<option value="1">01</option>
<option value="2">02</option>
<!-- This would go up to 23 -->
</select>
<select id="rec_hour">
<option value="0">00</option>
<option value="1">01</option>
<option value="2">02</option>
<!-- This would go up to 23 -->
</select>
我上面的代码使用Subtra作为试金石测试值。。这实际上会根据我的php结果而改变
更新:
我真正想做的就是
我收到一个时间小时只说2->指的是凌晨2点14将是下午2点n然后我的php将计算小时,以找出一次旅行将需要多长时间。比如说6小时。。然后我想向用户显示从凌晨2点到晚上8点的6个小时的延迟时间。。i、 你应该在晚上8点离开家。。你明白了吗?还是我感到困惑?这应该可以:
$("#rec_hour").val(recHour);
使用.val设置rec_hour的值。还要注意,代码中有一些语法错误。你有一个额外的卷发支架。还需要使用abs value函数处理subtra>myHour的情况 更正代码:
$(document).ready(function() {
$("#hour").change(function() {
var myHour = $(this).val();
var Subtra = 4;
var recHour = Math.abs(Subtra - myHour);
$("#rec_hour").val(recHour);
});
});
注明错误的原件:
$(document).ready(function() {
$("#hour").change(function() {
var myHour = $(this).val();
var Subtra = 10;
var recHour = myHour - Subtra; //handle Subtra > myHour with abs()
$("#rec_hour").val = recHour;
$("#rec_hour").text(recHour);
} //This curly brace is not needed
});
});
演示:
我给出了一些更具描述性的变量名称并应用了数学。小提琴也被更新以反映这一点
$(document).ready(function() {
$("#arrival").change(function() {
var arrivalTime = $(this).val();
$("#depart").val(getDepartTime(10, arrivalTime));
});
});
function getDepartTime(journeyDuration, arrivalTime){
var departTime = 0;
if(journeyDuration > arrivalTime){
departTime = 24 - (Math.abs(journeyDuration - arrivalTime));
}else{
departTime = arrivalTime -journeyDuration;
}
return departTime;
}
所以你在问如何使用jQuery设置select元素的值?如果值为负,可能会重复什么?这是另一个问题,我可能有一个解决方案。但我真正想做的是。。我收到一个时间小时只说2-指凌晨2点。然后,我的php将计算小时数,以确定一次旅行需要多长时间,例如,说这是小时。。然后我想向用户显示从凌晨2点到晚上8点的6个小时的延迟时间。。i、 你应该在晚上8点离开锄头。。你明白了吗?还是我搞糊涂了?这是有效的,但并不一致。基本上,减去时间小时是正确的。。在你的演示中,这不是所有的工作。。尝试将第一个选择更改几次,然后查看..而且我的sub不向后。。如果用户选择2,则表示2am n,即返回的变量为6。。那么安塞尔号需要从凌晨2点起晚点6小时。。还有另外一个问题我不认为他有问题。。。我认为Subtra应该是php值。我向后读取减法部分,但它确实有效,我只是不想在select中创建32个条目,所以如果选择1,它只选择0。val总是有效的。@TopDollarUK,它不起作用,因为他没有枚举所有的值。代码做它应该做的,而不是向后。啊,我明白你的意思。我现在站着。但是另一个问题是负值,它是arghhh lol。请看我的编辑。我可能没有正确处理你的计算时间。我有点不确定你想用它实现什么,请看顶部我的更新评论。。更好的解释。谢谢你的回答。。至少有一件事是可行的,但仍然没有遵循这个例子。我不确定你从哪里得到每个值,2am从哪里来?第一个下拉列表?小时时间是在整个过程开始之前以小时为单位给出的。你可以从1-24中选择你喜欢的任何数字。然后,选择第一个选项。。你想在哪一个小时到达那个地方。。说13那是下午1点。。然后我需要通过说..来自动填充/查看记录时间。。第一次选择-行程=记录小时。。n向用户显示。。
$(document).ready(function() {
$("#arrival").change(function() {
var arrivalTime = $(this).val();
$("#depart").val(getDepartTime(10, arrivalTime));
});
});
function getDepartTime(journeyDuration, arrivalTime){
var departTime = 0;
if(journeyDuration > arrivalTime){
departTime = 24 - (Math.abs(journeyDuration - arrivalTime));
}else{
departTime = arrivalTime -journeyDuration;
}
return departTime;
}