我有几个具有相同字段的表单,我需要使用jQuery收集set o字段的值。我使用.each
并且它适用于id="q"
的字段,但我不知道为什么,对于其他字段,它只获得第一个值。有人可以帮帮我吗?
HTML:
<form name="art_1" id="art_1">
<input type="text" name="prezzol" id="prezzol">
<input type="text" name="q" id="q" onchange="ricalcola('#art_1')">
<input type="text" name="sconto" id="sconto" onchange="ricalcola('#art_1')">
</form>
<form id="art_2" name="art_2">
<input type="text" id="prezzol" name="prezzol">
<input type="text" name="q" id="q" onchange="ricalcola('#art_2')" >
<input type="text" name="sconto" id="sconto" onchange="ricalcola('#art_2')" >
</form>
<a onclick="totale()">totale</a>
JavaScript的:
function totale() {
$('#q').each(function (){
//works!! 2 value!
tquantità += parseInt($(this).val())
})
$('#sconto').each(function(){
//doesn't work, only the first value
tprezzo += $(this).val()
})
答案 0 :(得分:0)
ID应该是唯一的,这就是为什么你只能获得一个值。
尝试使用输入的名称作为选择器。即: $( '输入[名称= Q')
答案 1 :(得分:0)
你不能在同一个文档上有多个id
..改变你的HTML来代替使用类然后迭代元素
<form name="art_1" id="art_1">
<input type="text" name="prezzol" class="prezzol">
<input type="text" name="q" class="q" onchange="ricalcola('#art_1')">
<input type="text" name="sconto" class="sconto" onchange="ricalcola('#art_1')">
</form>
<form id="art_2" name="art_2">
<input type="text" class="prezzol" name="prezzol">
<input type="text" name="q" class="q" onchange="ricalcola('#art_2')" >
<input type="text" name="sconto" class="sconto" onchange="ricalcola('#art_2')" >
</form>
<a onclick="totale()">totale</a>
然后做
function totale() {
$('.q').each(function (){
tquantità += parseInt($(this).val(),10);
})
$('.sconto').each(function(){
tprezzo += parseInt($(this).val(),10);
})
})
并且parseInt()
应始终包含基数
答案 2 :(得分:0)
如果要选择具有name属性的所有元素,可以使用以下代码:
function totale() {
$('input[name=sconto]').each(function (){
tquantità += parseInt($(this).val(),10);
})
$('input[name=q]').each(function(){
tprezzo += parseInt($(this).val(),10);
})
})