マイページはいくつかのフォームで構成され、いくつかの入力は "values []"と呼ばれます。 フォームのいずれかでこれらの入力を変更するときは、値を合計し、結果を同じフォームの「合計」という別の入力に表示したいと思います。特定のフォームの入力値を合計し、結果を表示します
私のhtmlコードは以下のようになります。
<form action="index.php" method="post" id="form_1">
<input type="text" name="values[]" id="value_1_1" onkeyup="sum_values(this)" />
<input type="text" name="values[]" id="value_1_2" onkeyup="sum_values(this)" />
[... More inputs with the name "values[]" ]
<input type="text" name="total" disabled>
</form>
<form action="index.php" method="post" id="form_2">
<input type="text" name="values[]" id="value_2_1" onkeyup="sum_values(this)" />
<input type="text" name="values[]" id="value_2_2" onkeyup="sum_values(this)" />
[... More inputs with the name "values[]" ]
<input type="text" name="total" disabled>
</form>
と私のjavascriptは次のとおりです。
<script type="text/javascript">
function sum_values(x){
var arr = document.getElementById(x.form.id).elements['values[]'];
var tot=0;
for(var i=0;i<arr.length;i++)
{
if(parseInt(arr[i].value))
tot += parseInt(arr[i].value);
}
document.getElementById(x.form.id).elements['total'].value = tot;
}
</script>
私は最終的に最初のフォームの作業を見て非常に満足していたが、私は2番目のことを考え出しました1つはなかった...
私はなぜ理解するのを助けることができますか? 私はjavascriptの初心者です。私が見つけたコードを手配しようとしました。 ありがとうございました
、それは私が正しいんだ場合のvar ARRは=のdocument.getElementById(x.form.id)が – wrangler
を.value' 'すべきではない、 "x.form.idは" 与えます全フォームのID。あなたがrefeerする行は、このフォーム(フォーム全体ではありません)の中に "values []"という名前の入力を得るはずです。 – Corlin
次に、 'x.form.id'の代わりに' x.id'を使用してください。これは確かに動作します – wrangler