Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 复杂选择更改另一个选择。。没问过_Jquery_Select_Onchange - Fatal编程技术网

Jquery 复杂选择更改另一个选择。。没问过

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<

我的问题解释起来相当简单,但实现起来有点棘手。从逻辑上讲,这似乎很有可能,但我有点卡住了

目标/宗旨: 我的第一个选择名为hour,第二个选择名为rec_hour。每个都有相同的值。请参见下面的HTML代码:

<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;
      }