如何在jquery

时间:2018-04-14 16:57:17

标签: javascript jquery

如果选中相应的复选框,我想获取输入框的值。

在jsfiddle https://jsfiddle.net/xpvt214o/125530/

尝试

我可以获取变量名称,但无法获取值。我收到了一个“未定义”的警告。

另外,我需要获得所有检查金额的总和。我怎么能这样做?

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $(":checkbox").click(function(){
        //$(this).hide();
        if (this.checked) {
         var id = $(this).attr('id');
         var x = "amt_" + id;
         alert("x is " + x);
         alert($(x).val());
         }
    });

});
</script>
</head>
<body>
<form method="post" action=""  >
<input type="checkbox" name="food[]" id="345" value="inv_345">34 
   Amount <input name=amt_345 id="amt_345" value=10><br> 
<input type="checkbox" name="food[]" id="456" value="inv_456">45 
   Amount <input name=amt_456 value=20 id=amt_456><br>
<input type="checkbox" name="food[]" id="789" value="inv_789">78 
   Amount <input name=amt_789 id=amt_789 value=30><br>
<input type=submit name=submit value=submit>
</form>
Total Amt of Clicked Values is <div id="totalval"></div>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

从你的代码......

您需要添加&#34;#&#34;在您的变量中使其工作var x = "#amt_" + id; 另外,我添加了总功能。

以下是所有这些的工作片段:
(我将alert修改为console.log,因为警报让我发疯了!:))

&#13;
&#13;
$(document).ready(function() {
  $(":checkbox").click(function() {

    if (this.checked) {
      var id = $(this).attr('id');
      var x = "#amt_" + id; // You needed to add #
      console.log($(x).val());
    }

    // Added total!
    var total = 0;
    $(":checkbox:checked").each(function(index) {
      x = "#amt_" + $(this).attr('id');
      total += parseInt($(x).val());
    });
    console.log("total:", total);

  });

});
&#13;
<!DOCTYPE html>
<html>

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>

<body>
  <form method="post" action="">
    <input type="checkbox" name="food[]" id="345" value="inv_345">34 Amount <input name=amt_345 id="amt_345" value=10><br>
    <input type="checkbox" name="food[]" id="456" value="inv_456">45 Amount <input name=amt_456 value=20 id=amt_456><br>
    <input type="checkbox" name="food[]" id="789" value="inv_789">78 Amount <input name=amt_789 id=amt_789 value=30><br>
    <input type=submit name=submit value=submit>
  </form>
  Total Amt of Clicked Values is
  <div id="totalval"></div>
</body>

</html>
&#13;
&#13;
&#13;

希望它有所帮助!

答案 1 :(得分:0)

你的选择器在那里结束时是不完整的:

alert($(x).val());

你的选择器是$('amt_456'),它不匹配任何元素,但我想你想找到名称属性是该变量的输入:

alert($('input[name="' + x + '"]').val());

......如果我理解正确的话。