2010-11-20 4 views
0

javascriptを使用してテキストボックスの値を減らしたり、大きくしたりしようとしています。 私は、それに配列を使用していないとき、それを動作させました。 なぜこの配列に配列が必要なのか尋ねているのですか?なぜなら、後で大規模なプロジェクトに統合する必要があるからです。私はjavascriptの初心者ですので、配列を使用するときにこの作業を行う上での要件は何か分かりません。javascriptで配列を動作させる方法

<html> 
<head> 
    <script type="text/javascript"> 
    function blabla(){ 
     var a= document.x.qty[].value; 
     var b=document.x.qty2[].value; 
     var pa=parseInt(a); 
     var plusqty= pa + 1; 
     var txt = plusqty; 
     var tbox = document.getElementById('qty'); 
     if (tbox) 
     { 
      tbox.value = txt; 
     } 

    } 

    function lastog(){ 
     var a= document.x.qty.value; 
     var b=document.x.qty2.value; 
     var pa=parseInt(a); 
     var plusqty= pa - 1; 
     var txt = plusqty; 
     var tbox = document.getElementById('qty'); 
     if (tbox) 
     { 
      tbox.value = txt; 
     } 
    } 
    </script> 
</head> 

<body> 
    <form name="x"> 
    number 1<input type="text" id="qty" name="qty[]" value=""><br/> 
    number 2<input type="text" id="qty2" name="qty2" value=""><br/> 
    number 3<input type="text" id="qty3" name="qty3" value=""><br/> 
    <a href=""><img src="add-icon.png" onmouseover="blabla();"></img></a> 
    <a href=""><img src="delete-icon.png" onmouseover="lastog();"></img></a> 
    </form> 
</body> 
</html> 

私はまた、ループの通常を使用して、それを反復処理しようとしたが、私はそれを動作させるカント:

function blabla(){ 
    for (int i=0; i<arr.length; i++){ 
     var a= document.x.qty[].value; 
     var b=document.x.qty2[].value; 
     var pa=parseInt(a); 
     var plusqty= pa + 1; 
     var txt = plusqty; 
     var tbox = document.getElementById('qty'); 
     if (tbox) 
     { 
      tbox.value = txt; 
     } 
    } 
} 
+1

申し訳ありませんが、それはまったく動作しません。まず、document.x.qty []などの代わりに 'document.getElementById( 'qty')'を使用してください。 –

+2

フォーム入力にラベルを付けるには、['

+0

リンクをありがとう、私は後でそれを必要とするでしょう –

答えて

4

を(例えば放火犯を使用して):

var a = document.x["qty[]"].value; 
var b = document.x["qty2[]"].value; 

けれども、彼らはIDを持っている場合は、それを行う方がはるかに簡単です:

var a = document.getElementById("qty").value; 

か、その名前を持つすべてをループ例えば:

var qtyElements = document.getElementsByName("qty[]"); 
for(var i=0; i<qtyElements.length; i++) { 
    alert(qtyElements[i].value); 
} 
+0

私はidを使用してインデックスを含める必要はありません? –

+0

@Ieyasu - 'id'はドキュメントで一度だけ**使用するべきです。' name'は複数回使用できます。いいえ、 'document.getElementById()'は単一の要素を返すのでインデックスを使用する方法はありません。そのidは一度だけ使用する必要があるからです。 –

1

は、エラーメッセージが表示されますか? あなたはこのように、名前に特殊文字価値プロパティにアクセスするためにbracket notationを使用する必要が

関連する問題