2

これが私のシナリオです。

ページ内に次の入力があります。

<input name="myInput[field1]" value="field1value" type="text" />

<input name="myInput[field2]" value="field2value" type="text" />

<select name="myInput[select1]">
   <option value="1" selected="selected">Option 1</option>
   <option value="2">Option 2</option>
   <option value="3">Option 3</option>
</select>

Prototypeを使用しmyInputて、属性内に含まれるすべてのフィールドを選択し、各フィールドをnameループして、次のように変数に値を追加しようとしています。

var myVar = field1Value + field2Value + select1Value;

これは可能ですか?

4

3 に答える 3

1

正しい解決策は次のとおりです。

var myVar;
$$('[name^="myInput"]').each( function(i) {
   myVar += i.value;        
});

それらはすべての入力を選択するための鍵でありmyInput、それらのname属性に含まれているのは^記号の前に記号を使用する=ことです。これ[name^="myInput"]を達成するための正しいセレクターもそうです。

于 2013-03-18T19:01:37.117 に答える
1

未テスト:

var myVar;
$$('input[name="myInput"]').each(function(i) {
    myVar += $(i).value; // Might be $(this).value
});

私はもうプロトタイプ コードをあまり書きませんが、うまくいくと思います。そうでない場合は、それを終わらせるのに十分なほど近づく必要があります。

于 2013-02-23T00:43:29.503 に答える
0

合計したいフィールドにクラスを追加することもできます

var sum = 0;
$$('.addthese').each(function(i){
    sum += i.getValue()
});

これにより、値が追加されるクラスが適用されている限り、フォーム要素の名前について心配する必要がないため、より柔軟になります。

DOMgetValue()にプロパティを持たない一部のフォーム要素の問題を解決するため、このメソッドを使用しました。value

于 2013-02-23T05:48:17.257 に答える