【Javascript】変数と文字列を結合して引数にしたい~eval関数

NO IMAGE

サムネとタイトルを見れば、大体は察すると思うが、

JavaVB、HTML、PHPしかやってこなかった人として、なんとなくJavascriptを書いてきたが直ぐに詰まってしまった。
Javascriptで変数と文字列を結合したものを引数として扱いたかった時に辿り着いた解決方法です。

f:id:AoiKugayama:20190706161050p:plain

やりたいこと

ボタンを押した時に未入力の項目があったら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!

システム開発/プログラミングカテゴリの最新記事