JavaScriptで変数を生成するには?

[上に] [前に] [次に]
あきぞう [E-Mail] 1999/12/14(火) 13:46:05
JavaScript内で変数を生成する方法をおしえて!
たとえば
a_1,a_2,a_3...という変数があった場合に
1,2,3をfor分とかでまわしてa_1,a_2..という変数名を
生成したいのですが。。

意図としてはHTML上のテーブル内のInput分に計算した値
をセットしたいという感じですが、よろしくお願いします。

たこすけ 1999/12/14(火) 15:56:17
for(i=1;i<=3;i++){
hoge = "var a_" + i;
eval(hoge);
}

こういう事でしょうか?

zizz... [HomePage] 1999/12/14(火) 16:27:47
やりたいことがいまいち分からないので外しているかもしれませんが、
普通そういう時って配列を使うんじゃない?

あきぞう 1999/12/14(火) 16:53:04
ごめんなさい。もう一度説明すると
html内ではちょっと手抜きですけど・・

<table>
<tr><td><input type=text name="a_1" onChange="calc(1)">
<input type=text name=b_1 onChange="calc(1)"></td><tr>
<tr><td><input type=text name="a_2" onChange="calc(2)">
<input type=text name=b_1 onChange="calc(2)"></td><tr>
<tr><td><input type=text name="a_3" onChange="calc(3)">
<input type=text name=b_1 onChange="calc(3)"></td><tr>
</table>

となっていてJavaScriptで

たとえば b_xにa_x * 10の値をセットしたいというものです。

a_1に"1"が入力されるとb_1に10が表示される感じです。

よろしくお願いします。

あきぞう 1999/12/14(火) 17:05:11
ごめんなさい。もう一度説明すると
html内ではちょっと手抜きですけど・・

<table>
<tr><td><input type=text name="a_1" onChange="calc(1)">
<input type=text name=b_1 onChange="calc(1)"></td><tr>
<tr><td><input type=text name="a_2" onChange="calc(2)">
<input type=text name=b_1 onChange="calc(2)"></td><tr>
<tr><td><input type=text name="a_3" onChange="calc(3)">
<input type=text name=b_1 onChange="calc(3)"></td><tr>
</table>

となっていてJavaScriptで

たとえば b_xにa_x * 10の値をセットしたいというものです。

a_1に"1"が入力されるとb_1に10が表示される感じです。

よろしくお願いします。

あきぞう 1999/12/14(火) 17:09:49
ごめんなさい。もう一度説明すると
html内ではちょっと手抜きですけど・・

<table>
<tr><td><input type=text name="a_1" onChange="calc(1)">
<input type=text name=b_1 onChange="calc(1)"></td><tr>
<tr><td><input type=text name="a_2" onChange="calc(2)">
<input type=text name=b_1 onChange="calc(2)"></td><tr>
<tr><td><input type=text name="a_3" onChange="calc(3)">
<input type=text name=b_1 onChange="calc(3)"></td><tr>
</table>

となっていてJavaScriptで

たとえば b_xにa_x * 10の値をセットしたいというものです。

a_1に"1"が入力されるとb_1に10が表示される感じです。

よろしくお願いします。

たこすけ 1999/12/14(火) 18:35:32
ソースを見て余計に分からなくなったのですが・・・

目的が
> a_1に"1"が入力されるとb_1に10が表示される
であるならば

<FORM>
<TABLE>
<TR>
  <TD>
   <INPUT TYPE=text onChange="document.forms[0][1].value=this.value*10">
   <INPUT TYPE=text>
  </TD>
<TR>
<TR>
  <TD>
   <INPUT TYPE=text onChange="document.forms[0][3].value=this.value*10">
   <INPUT TYPE=text>
  </TD>
<TR>
<TR>
  <TD>
   <INPUT TYPE=text onChange="document.forms[0][5].value=this.value*10">
   <INPUT TYPE=text>
  </TD>
<TR>
</TABLE>
</FORM>

こういう事でしょうか?

J.Naka 1999/12/14(火) 22:10:19
あっつまり、JavaScriptで使用する、オブジェクトのnameやidを、JavaScriptで自動生成したいということかな?

<table border="1">
<SCRIPT LANGUAGE="JavaScript">
<!--
for(i=1;i<4;i++){
document.write("<tr><td><input type=text name=\"a_" + 1 +"\" onChange=\"calc(" +i+ ")\">\n");
document.write("<input type=text name=\"b_" + i*10 + "\" onChange=\"calc(" + i + ")\"></td><tr>\n");
}
//-->
</script>
</table>

◎table生成テスト済み。
#JavaScriptの " には、毎回疲れる。自動化しないと。。。

J.Naka 1999/12/14(火) 22:16:06
あっ間違い、
>name=\"a_" + 1 +"\"

name=\"a_" + i +"\"

あきぞう 1999/12/15(水) 10:20:24
ますます誤解を生んでしまって申し訳ない。
つまり。。。
”html内の変数をJavaScriptで使用したい”ということなのですが
htmlの変数が動的なためJavaScript内で変数わたしをしたいという
ことです。

通常は

function calc(a){
a.b_1.value=a.a_1 * 10
}
<html>
<input type=text name="a_1" onChange=calc(this.form)>
<input type=text name="b_1">

てな感じでかくのでしょうが、今回は

a_1,a_2の1,2の部分が10まであるかもしれないし100まであるかもしれない。
そんでb_1,b_2にa_1のinputにより入力した値をもとに計算結果をセットした
いということです。

ではよろしくお願いします。

たこすけ 1999/12/15(水) 14:36:14
値を参照・変更するオブジェクトを引数で指定したい。
という事だと思うのですが・・・(変数の意味が未だ分かりません)

<SCRIPT>
<!--
function calc(num){
    with(document.forms[0]){
        elements["b_"+num].value
      = elements["a_"+num].value * 10;
    }
}
//-->
</SCRIPT>

<FORM>
<TABLE>
<TR>
  <TD>
   <INPUT TYPE=text name=a_1 onChange="calc(1)">
   <INPUT TYPE=text name=b_1>
  </TD>
<TR>
<TR>
  <TD>
   <INPUT TYPE=text name=a_2 onChange="calc(2)">
   <INPUT TYPE=text name=b_2>
  </TD>
<TR>
<TR>
  <TD>
   <INPUT TYPE=text name=a_3 onChange="calc(3)">
   <INPUT TYPE=text name=b_3>
  </TD>
<TR>
</TABLE>
</FORM>

こんな感じ?

あきぞう 1999/12/15(水) 15:10:35
そういう意味でした。
伝え方が下手ですみません。。

elementsの新しい使い方をはじめて知りました。
ありがとうございました。

あきぞう 1999/12/15(水) 15:37:47
[[解決]]
解決です。

[上に] [前に] [次に]