javascript - 使用 jquery 使用 .class 标识符从选择列表中选择值错误

标签 javascript jquery html

我做错了什么或者我应该如何解决这个问题。

看下面的 fiddle :

fiddle

$(document).ready(function() {

  $(".metric_div").hide();

  $("#solid_radio").click(function() {
    $("#solid").show();
    $("#liquid").hide();
    $("#volume").hide();
    $("#none").hide();
  });

  $("#liquid_radio").click(function() {
    $("#solid").hide();
    $("#liquid").show();
    $("#volume").hide();
    $("#none").hide();
  });

  $("#volume_radio").click(function() {
    $("#solid").hide();
    $("#liquid").hide();
    $("#volume").show();
    $("#none").hide();
  });

  $("#input1").change(function() {
    console.log($("#input1").val());
    var input1 = $("#input1").val();

    console.log('multiplier: ' + get_multiplier());
    $("#result").val(input1 * get_multiplier());
  });

  function get_multiplier() {
    var multiplier = $(".multiplier option:selected").val();
    return multiplier;
  }

});
  • 用户选择“solid(g)”单选按钮

  • 调用 Jquery .show() 并出现下拉列表

  • 在下拉列表中选择“KG”。值 = 1000

  • getMultiplier() 函数应该返回 1000,但事实并非如此

  • 为什么

最佳答案

第一个问题是您声明 class在您的 select 上属性两次元素:

<form class="form-control" class="multiplier">

而不是

<form class="form-control multiplier">

第二个问题是您有多个带有 multiplier 的元素类,所以当您选择$(".multiplier option:selected").val()时它正在检索第一个元素的值 multiplier类(class)。您需要获取可见的值 multiplier元素:

$(".multiplier:visible option:selected").val()

Here's an updated fiddle

关于javascript - 使用 jquery 使用 .class 标识符从选择列表中选择值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34815093/

相关文章:

javascript - 可观察实例在没有观察者(或订阅者?)的情况下发出

javascript - 在 JavaScript 文件中包含 HTML 的优雅干净的方法?

jquery - 使用 jQuery 将 Enter 的按下链接到按钮单击

Javascript 删除 div 元素

html - 当您在 html 中链接图像时,它会在右下角留下这个蓝色的超链接像素吗?

javascript - 循环确定 selectedIndex 不起作用?

javascript - 为什么包在我的 yarn.lock 中而不在我的 package.json 中?

javascript - 大型可滚动表的卡住列和行

javascript - 如何计算嵌套JSON的长度?

jQuery:如何将类添加到已通过 ajax 插入到 DOM 中的元素