JavaScript:如何对变量值求和并显示为div?
我是JS的新用户,我正在尝试对HTML输入的2个值求和 问题是: 我有3个HTML输入: 按类型输入=编号从输入字段中选择编号; 2个输入,类型=收音机 我想使用jQuery将数字字段的值与所选单选按钮的值实时相加 JS: HTML: 我只想将所选无线电输入的值添加到数量字段中的值 示例:如果quantity字段的值为100,我单击x单选按钮value=1,然后打印101。在您的表单中添加一个id,例如,我在这里使用了myForm,然后尝试以下几行:JavaScript:如何对变量值求和并显示为div?,javascript,jquery,html,Javascript,Jquery,Html,我是JS的新用户,我正在尝试对HTML输入的2个值求和 问题是: 我有3个HTML输入: 按类型输入=编号从输入字段中选择编号; 2个输入,类型=收音机 我想使用jQuery将数字字段的值与所选单选按钮的值实时相加 JS: HTML: 我只想将所选无线电输入的值添加到数量字段中的值 示例:如果quantity字段的值为100,我单击x单选按钮value=1,然后打印101。在您的表单中添加一个id,例如,我在这里使用了myForm,然后尝试以下几行: $('#myForm input').cha
$('#myForm input').change(function() {
var quantityVal = +$('#quantity').val();
var radioVal = +$('[name="math"]:checked').val();
var sum = quantityVal + radioVal;
$('#sum').text(sum)
});
在这里,我们将为表单中的所有输入添加一个更改侦听器,这样,如果其中任何一个以任何方式更改,就不会像以前那样单击,那么函数将运行。然后,我们使用jQuery从数量输入和检查的无线电中获取值。您会注意到,我们还使用这两个函数来确保将它们转换为整数
最后,我们只需设置总和范围的值。尽管您可能应该添加一些空无线电值的错误检查,或者设置一个默认值,但是上面的内容应该可以帮助您实现这一点
这个怎么样
//任何时候编辑此内容时,请更新
$'quantity'.oninput,函数{
$'sum'。textsumethes;
};
//任何名为math的单选按钮
//单击,我们执行此函数。
$'[name=math]'。单击函数{
$'sum'。textsumethes;
};
函数sumthes{
var qty=parseInt$quantity.val | 0;
var addend=parseInt$[name=math]:checked.val | 0;
返回数量+加数;
}
x和y不是jQuery属性,您需要$sum.text$this.val+x;。另外,当您仅获取一个ID时,请使用getElementById而不是querySelector。此外,您可以使用this.value而不是$this.val,因为它似乎是本地DOM和jQuery的混合。您最好解析这些值,否则您将得到一些时髦的字符串连接;你是怎么想的?他们已经在第2行和第3行使用一元加号进行转换了!我的坏。我没看见他们,他们太小了D做得很好。谢谢,它很有效。但有一个错误:若我首先点击收音机而不是输入=数字,系统会打印NaN@雪人应该被修复。通过将总和移动到一个单独的函数,两个操作的功能将完全相同。和错误检查是你的朋友。谢谢你,它的工作。最后,我还需要一件事:如果我首先选择单选按钮,然后输入=数字键,出于安全原因,需要取消选中单选按钮。我试图添加这一行:$y.checked=false@SnowmonkeyOk,我刚刚修正了这一行:document.getElementById'y'。checked=false;可以将此代码嵌入jQuery吗?不确定将其嵌入jQuery是什么意思,您可能只想将其保存到一个外部js文件中,并将其与其他脚本一起加载。
<form>
<input id="quantity" type="number">
<input id="y" name="math" type="radio" value="0">
<input id="x" name="math" type="radio" value="1">
</form>
<span id="sum"></span>
$('#myForm input').change(function() {
var quantityVal = +$('#quantity').val();
var radioVal = +$('[name="math"]:checked').val();
var sum = quantityVal + radioVal;
$('#sum').text(sum)
});