0

我的问题很容易解释,但实施起来有点棘手。从逻辑上讲,这似乎很有可能,但我有点卡住了。

目标/目的:我的第一个 SELECT 名为“hour”,第二个 SELECT 名为“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>

我从 PHP 文件“$hours”中收到一个变量,其中包含一个从 0 到 24 的整数值。现在,我想获得小时的值,假设这个场景是 6,然后在第二个 SELECT 中减去这个值(rec_hour)。

所以本质上,如果我返回的变量是 6。并且我从第一个选择(小时)中选择 10,那么我希望第二个选择显示/选择 10-6 的值,即 4。

我希望这是有道理的..

我绝望地尝试了下面的脚本,但无济于事:

    $(document).ready(function() {

    $("#hour").change(function() {
        var myHour = $(this).val();
        var Subtra = 10;
        var recHour = myHour - Subtra;

       $("#rec_hour").val = recHour;
       $("#rec_hour").text(recHour); 
     }
  });

});

我上面的代码使用“Subtra”作为试金石测试值。这实际上会根据我的 php 结果而改变。

更新:

我真正想做的就是这个..

我收到一个时间(仅小时)说 2 -> 指的是凌晨 2 点(14 点将是下午 2 点)n 然后我的 php 将计算小时以找出旅程需要多长时间。例如说这是 6 小时.. 那么我想向用户显示从凌晨 2 点开始落后 6 小时.. 即晚上 8 点.. 即您应该在晚上 8 点离开家.. 你跟着?还是我很困惑?

4

2 回答 2

1

使用 .val() 设置 rec_hour 的值。另请注意,您的代码中有一些语法错误。你有一个额外的花括号。您还想使用 abs 值函数处理 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
  });

});

演示:http: //jsfiddle.net/FdW4w/3/

我给出了一些更具描述性的变量名称并应用了数学。小提琴也更新以反映这一点。

  $(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;
      }
于 2012-04-13T00:03:16.287 回答
0

这应该工作:

$("#rec_hour").val(recHour); 
于 2012-04-13T00:02:23.087 回答