- ベストアンサー
オブジェクト数の取得
以下のようなテキストボックスがあります。 <input type="text" name="price1[0]"> <input type="text" name="price2[0]"> <input type="text" name="price3[0]"> <input type="text" name="price1[1]"> <input type="text" name="price2[1]"> <input type="text" name="price3[1]"> ・・・・ 添え字は[0]、[1]、[2]・・・となり、 データにより可変となっています。 入力するのは金額なので、数値かどうかのチェックを行いたいのですが、テキストフィールドの個数をどのように取得したらよいかがわかりません。 他のオブジェクトとのからみで、name="price1[]"のように変更することはできません。 (このようにすると、オブジェクト数は取得できるのですが) 上記記述のオブジェクト数の取得方法がわかる方、教えてください。テキストは金額のみなので、テキストフィールド全ての個数でもよいですし、price1[]、price2[]、price3[]各々の個数でもどちらでもよいです。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
<form></form> で囲んで取る方法があります。 //html部 <form name="aaa"> <input type="text" name="price1[0]"> <input type="text" name="price2[1]"> <input type="text" name="price3[2]"> <input type="text" name="price1[3]"> <input type="text" name="price2[4]"> <input type="text" name="price3[5]"> </form> //スクリプト部 function Oninit() { var num; num=document.aaa.length; alert(num); //6が表示 } 個人的な意見ですが。 変動でhtml部変えてるなら(ASPやPHP何使ってるか知りませんが、、) html記述を作成する側で(ASP側で) javascript等の変数に カウント入れとく処理を書いといた方が楽かと、、。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
<form name="PRICE"> <input type="text" name="price1[0]"> <input type="Text" name="price2[0]"> <input type="text" name="price3[0]"> <input type="text" name="price1[1]"> <input type="text" name="price2[1]"> <input type="text" name="price3[1]"> <input type="submit" value="送信"> </form> の時 var c=0; for(var i=0;i<document.PRICE.length;i++){ if(document.PRICE.elements[i].type=="text") c++; }
お礼
回答ありがとうございます。 今回はカウントをphp側から送るようにしましたが、typeの取得でもできそうですね。参考になりました。
お礼
回答ありがとうござます。 スクリプトで上手く処理できればと思ったのですが難しいようですね。 php側からカウントをだすようにしました。