如果选中相应的复选框,我想获取输入框的值。
在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>
答案 0 :(得分:1)
从你的代码......
您需要添加&#34;#&#34;在您的变量中使其工作var x = "#amt_" + id;
另外,我添加了总功能。
以下是所有这些的工作片段:
(我将alert
修改为console.log
,因为警报让我发疯了!:))
$(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;
希望它有所帮助!
答案 1 :(得分:0)
你的选择器在那里结束时是不完整的:
alert($(x).val());
你的选择器是$('amt_456')
,它不匹配任何元素,但我想你想找到名称属性是该变量的输入:
alert($('input[name="' + x + '"]').val());
......如果我理解正确的话。