【Javascript】変数と文字列を結合して引数にしたい~eval関数
移転しました。
サムネとタイトルを見れば、大体は察すると思うが、
Java、VB、HTML、PHPしかやってこなかった人として、なんとなくJavascriptを書いてきたが直ぐに詰まってしまった。
Javascriptで変数と文字列を結合したものを引数として扱いたかった時に辿り着いた解決方法です。
やりたいこと
ボタンを押した時に未入力の項目があったらfalseを返して登録を中断させたい。
が、if文の引数で変数tempと”f1.”というフォームの名前を結合したかったが、コケてしまう。
コード
〜 function Validation(cont) { for(var i = 0; i < cont; i++){ for(var f = 1;f<8;f++ ){ var temp; temp = "che"+f+i; if (f1.temp.value == "" ){ alert("未選択です。"); return false; } } } return true; } ~
やったこと
eval関数を使用して、"f1.temp.value"というもとJavascriptに認識させる事で上手にランしてくれた。
コード
〜 function Validation(cont) { for(var i = 0; i < cont; i++){ for(var f = 1;f<8;f++ ){ var temp; temp = "che"+f+i; if (eval("f1."+temp+".value") == "" ){ alert("未選択です。"); return false; } } } return true; } ~
eval関数って?
evalとは、引数に指定した文字列をJavaScriptプログラムコードとして評価・実行する機能をもつ関数っぽいです。
基本構文としては、
eval(string)
とあるように、文字列を入れます。
そのため、自由自在にJavaScriptコードを引き渡して動作させることができます。
よく使うことになりそうだ…
以上備忘録でした。
staycool!