-1

同じフィールドを持つ複数のフォームがあり、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()
})
4

3 に答える 3

0

ID は一意であると想定されているため、返される値は 1 つだけです。

セレクターに入力の名前を使用してみてください。例: $('input[name=q]')

于 2012-11-19T13:45:59.377 に答える
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()、常に基数を含める必要があります

于 2012-11-19T13:46:11.123 に答える
0

name 属性を持つすべての要素を選択する場合は、次のコードを使用できます。

function totale() {
    $('input[name=sconto]').each(function (){
      tquantità += parseInt($(this).val(),10);
    }) 
    $('input[name=q]').each(function(){
       tprezzo += parseInt($(this).val(),10);
    })
})
于 2012-11-19T13:49:13.190 に答える