1

私が望むのは、ID 3 のデータベース オブジェクトの合計を格納することです (以下の入力タグを参照)。さまざまな値を持つさまざまな ID があります。以下のサンプルで保存したい値は 2 です。

それに加えて、JavaScript で「+」と「-」ボタンを使用して sum[3] の値を増減したいと考えています。そこで、それを行うために incr と decr という関数を作成しました。

<script type="text/javascript">
function incr(what)
{
    alert(what);
    what.value ++;

    // rest of the function I left out, it works with a 'normal' name of the input tag
    //but I need to use the array
}    
</script>

how many?<input type="text" size="10" name="sum[3]" value="2" />
<input name="plus" type="button" value="+" onclick="incr(document.sum[3])" />
<input name="min" type="button" value="-" onclick="decr(document.sum[3])" />

アラートが値を返さなくても、うまくいきません。誰か?

4

1 に答える 1

4

これは多くのインライン コードを使用しているため、最も洗練されたアプローチではありませんが、問題は解決します。あなたのアプローチで間違っていたのは、 document.sum[3] が name="sum[3]" 入力の正しいセレクターではないことです

<script type="text/javascript">
function incr(what)
{

    what.value ++;
    alert(what.value);
    // rest of the function I left out, it works with a 'normal' name of the input tag
    //but I need to use the array
}    
</script>

how many?<input type="text" size="10" name="sum[3]" value="2" />
<input name="plus" type="button" value="+" onclick="incr(document.getElementsByName('sum[3]')[0])" />
<input name="min" type="button" value="-" onclick="decr(document.getElementsByName('sum[3]')[0])" />

インライン JavaScript を使用するのではなく、jQuery を使用し、イベント ハンドラーを使用してコードをリファクタリングすることを検討する必要があります。

于 2012-11-11T21:57:38.373 に答える