• ベストアンサー

onload時の初期表示

金額を表示するのに、カンマをつけるのですが、 データベースから受け取る金額が、数字のみのデータとなりますので、現在、onloadでカンマをつけています。 ここで質問したいのですが、 現在は var str = document.forms[1].kingaku.value; というように名前を指定して、カンマ編集を行っています。(カンマ編集する関数はできあがってます。) カンマ編集しなければいけない画面が複数あり、また、画面によってカンマ編集をするデータも違います。 関数に配列か何かで編集するデータを渡したいと思っているのですが、できるのでしょうか? (質問内容がわかりにくいものでしたらすみません。)

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

関数に配列を渡すには hoge([要素1,要素2,・・]) と書けば、関数側で配列として受け取れます。 ついでに、もう一つの方法も含めてサンプルを書いておきますので参考にしてください。 <html> <head> <title>関数に配列を渡す</title> <script type="text/javascript"> <!-- // IDのリストを受け取って処理 function hoge1(plist) { var msg=''; for(var i=0;i<plist.length;i++) { msg += document.getElementById(plist[i]).value + '\n'; } alert(msg); } // 処理対象のclassを受け取って処理 function hoge2(targetClass) { var msg=''; var taglist = document.getElementsByTagName('input');//inputタグのリスト for(var i=0;i<taglist.length;i++) { if(taglist[i].className == targetClass) { msg += taglist[i].value + '\n'; } } alert(msg); } //--> </script> </head> <body onload="hoge1(['p1','p2','p3']);hoge2('price')"> <input type="text" id="p1" value="123" class="price"> <input type="text" id="p2" value="456"> <input type="text" id="p3" value="789" class="price"> </body> </html>

coroco
質問者

お礼

早速の返答ありがとうございます!大変参考になりまいした。配列で渡すにはそのまま、複数書けばよかったのですね!!クラス指定のやり方も勉強になりました。 ほんとにありがとうございました!!

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

できますよ。 例えば、 function comma(f){ //実際の処理 f.value=commaNum; } とか関数があって comma(document.forms[1].kingaku); と言うように渡せばいいです。

coroco
質問者

お礼

早速のお返事ありがとうございました。複数のデータを渡したかったのですが、参考にします!

すると、全ての回答が全文表示されます。

関連するQ&A