使用jquery在一个函数中使用来自不同选择选项的值

时间:2016-08-29 13:54:59

标签: javascript jquery html

我的html中有两个选择选项,我想计算两个城市之间的旅行成本,我将如何比较用户使用jquery选择的两个选项,这里是我现在使用的代码。 / p>

</head>
<body>
  <div>
    <select id="origin" name="form_select">
      <option value="" disabled selected> select cargo origin...</option>
      <option value="0">chicago</option>
      <option value="1">london</option>
      <option value="1">berlin</option>
    </select>
  </div>
  <div>
    <select id="destination" name="form_select">
      <option value="" disabled selected> select cargo destination...< /option>
      <option value="0">dubai</option>
      <option value="1">london</option>
      <option value="1">berlin</option>
    </select>
  </div>

这是我的jquery代码,现在它只显示和隐藏div选择一个选项,我无法得到如何从同一函数上的不同选择选项调用不同的值,以便计算距离

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript">
  $(document).ready(function(){
    $("#origin").change(function(){
      $(this).find("option:selected").each(function(){
        if($(this).attr("value")=="1"){
          $("#hidden_div").show();
        }else{
          $("#hidden_div").hide();
        }     
      });
    });

    $("#destination").change(function(){
      $(this).find("option:selected").each(function(){
        var my =$("#test" ).val();
        if($(this).attr("value")<="1"){
          var my = $( "#myselect option:selected" ).text();
          alert(my);
          $("#hidden_div").show();
        }else{
          $("#hidden_div").hide();
        }
      });
    });

  });
</script>

3 个答案:

答案 0 :(得分:0)

假设当您说value=0value=1时,您的意思是比较两个值之间的差异,那么您会说:

val price = Math.abs($('#origin').val() - $('#destination').val());

答案 1 :(得分:0)

首先,您可能希望将国家/地区名称用作这些选项&#39;值

其次,你重复了最后一个&amp;的价值。原始选项和目的地的倒数第二

使用jQuery,您还可以使用.val()获取input元素的值,详细了解http://api.jquery.com/val/

您可以考虑使用以下脚本来比较目标:

function Compare(origin, destination) {
    if (origin.length > 0 && destination.length > 0) {
    if (origin == destination) alert("You have the same origin and destination!");
    else {
        $(".result").html("origin: " + origin + "<br />destination: " + destination);
        return true;
    }
  }
  return false
}

var $origin = $("#origin"),
        $destination = $("#destination");

$("#origin, #destination").change(function(){
    Compare($origin.val(), $destination.val());
});

您可以在https://jsfiddle.net/m9ghaj41/

上试用

答案 2 :(得分:0)

一般情况下,这可以帮助您:

  1. 绑定选择更改操作为fce calculateDistance
  2. 这个fce得到select的值并做你的数学
  3. 示例:

    function calcualteDistance(){
        var origin = $("#origin").val();
      var destination = $("#destination").val();
    
        if(origin && destination) {
        console.log("calculate");
      }
    }
    
    $("#origin, #destination").change(calcualteDistance);
    

    https://jsfiddle.net/m910dq7a/