。只在一个领域

时间:2012-11-19 13:40:58

标签: jquery each

我有几个具有相同字段的表单,我需要使用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()
})

3 个答案:

答案 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);
    })
})