出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

無題   testさん [2002/03/15 20:11:44] [1880]
  上の題名はJavaScriptについてです。   testさん [2002/03/15 20:12:36] [1881]
    Re:上の題名はJavaScriptについてです。   北岳さん [2002/03/18 11:32:37] [1883]
      Re:上の題名はJavaScriptについてです。   喜平さん [2002/03/18 11:54:54] [1884]
        JavaScriptの eval関数   北岳さん [2002/03/18 18:58:08] [1885]
          Re:JavaScriptの eval関数   testさん [2002/03/19 9:31:05] [1890]
            Re:JavaScriptの eval関数   喜平さん [2002/03/19 10:34:02] [1891]

[1880] 無題
投稿者:testさん 2002/03/15 20:11:44
以下のソースでテキストボックスにtest1ortest2のどちらかを入力することで処理を切り分けたいのですがうまくいきません。どなたか教えていただけないでしょうか?

<html>
<head>
<script language="JavaScript">
function funcInput(input) {
document.MyForm.input.value=完了っ;
}
</script>
</head>
<body>
<form name="MyForm">
テスト1<input type="text" size="15" name="test1"><br>
テスト2<input type="text" size="15" name="test2"><br>
値を入力させるのは<input type="text" size="10" name="senbetu">test1ortest2
<input type="button" onClick="JavaScript:funcInput(document.MyForm.senbetu.value);">
</form>
</body>
</html>

[1881] 上の題名はJavaScriptについてです。
投稿者:testさん 2002/03/15 20:12:36
題名の通りです。

[1883] Re:上の題名はJavaScriptについてです。
投稿者:北岳さん 2002/03/18 11:32:37
<script language="JavaScript">
function funcInput(x) {
document.MyForm.x.value="完了っ";
}
</script>

で、xに"test1"という文字列を入れた場合、
function funcInput(x) のxには確かに"test1"が入りますが、次の行は
document.MyForm.test1.value="完了っ";
には変わってはくれず、ブラウザは、MyForm に"x"という名前のオブジェクトを探しに行きますんで、
if 文でやるっきゃないんじゃ・・・?

[1884] Re:上の題名はJavaScriptについてです。
投稿者:喜平さん 2002/03/18 11:54:54
> <script language="JavaScript">
> function funcInput(x) {
> document.MyForm.x.value="完了っ";
> }
> </script>
>
> で、xに"test1"という文字列を入れた場合、
> function funcInput(x) のxには確かに"test1"が入りますが、次の行は
> document.MyForm.test1.value="完了っ";
> には変わってはくれず、ブラウザは、MyForm に"x"という名前のオブジェクトを探しに行きますんで、
> if 文でやるっきゃないんじゃ・・・?
 北岳さんのコメントを読んで、質問者の意味がやっと
わかりました。。

未検証ですが・・・
<script language="JavaScript">
function funcInput(input) {
eval("document.MyForm." + input +".value="'完了っ'")
}
</script>







[1885] JavaScriptの eval関数
投稿者:北岳さん 2002/03/18 18:58:08
喜平さんの、eval関数
http://tohoho.wakusei.ne.jp/js/builtin.htm#eval
を使う方法で確かにできましたが、前回書き込んだ文字を消すために、
text1、text2の中を毎回初期化しておく必要がありそうです。
 
下の書き方だと "test1"と"test2" に名前を分ける必要があるので、selectedIndex
http://tohoho.wakusei.ne.jp/js/form.htm#selectedIndex
は使えませんね。
 
------------- 1.htm -------------------
<html>
<head>
<script language="JavaScript">
function funcInput(x){
document.MyForm.test1.value="";
document.MyForm.test2.value="";
eval("document.MyForm." + x +".value='完了っ'");
}
</script>
</head>
<body>
<form name="MyForm">
テスト1<input type="text" size="15" name="test1"><br>
テスト2<input type="text" size="15" name="test2"><br>
値を入力させるのは<input type="text" size="10" name="senbetu">test1ortest2
<input type="button" onClick="JavaScript:funcInput(document.MyForm.senbetu.value);">
</form>
</body>
</html>

[1890] Re:JavaScriptの eval関数
投稿者:testさん 2002/03/19 9:31:05
解答ありがとうございます。
evalは数式に変換する関数だと認識していたのですが違いますか?
なぜevalを使ったのでしょうか?

[1891] Re:JavaScriptの eval関数
投稿者:喜平さん 2002/03/19 10:34:02
> 解答ありがとうございます。
> evalは数式に変換する関数だと認識していたのですが違いますか?
> なぜevalを使ったのでしょうか?
その認識は違います。

自分で調べる努力をしましょう。

http://www.asia.microsoft.com/japan/developer/scripting/default.htm

http://developer.netscape.com/docs/manuals/js/client/jsref/index.htm




TreeBBS For ASP V.0.1.3
Program By YasNet