JavaScriptのボタン作成について

このQ&Aのポイント
  • JavaScriptを使ったボタンの作成方法について質問があります。購入した本のサンプルコードを参考にしていますが、inputタグのvalueにおいて+を使用する理由がわかりません。何故+が必要なのでしょうか?
  • JavaScriptでボタンを作成する際に、inputタグのvalue属性において+を使用する理由がわかりません。購入した本のサンプルコードを参考にしていますが、この記述の意味がわかりません。解説していただけると助かります。
  • JavaScriptのボタン作成について質問があります。inputタグのvalue属性における+の意味が理解できません。本のサンプルコードを参考にしていますが、この部分の説明がありません。詳しく教えていただけると嬉しいです。
回答を見る
  • ベストアンサー

javascriptのボタン作成について

javascript勉強中の身なのですが、わからない所があったのでご教授お願いいたします。 勉強のため購入した本にあったサンプルの一部に、下記のような英字のボタンを作成する箇所がありました。 <script type="text/javascript"> var alpha="abcdefghijklmnopqrstuvwxyz"; var i; for (i=0;i<26;i++){ document.write("<input type='button' onclick='disp(this)' value='"+alpha.charAt(i)+"' />"); if (alpha.charAt(i)=="m") { document.write("<br />") }; } </script> 上記で問題なく動作しているのですが、input内のvalue='"+alpha.charAt(i)+"'の+が何故必要なのかよくわかりません。 もしかしたら基本的な事なのかもしれないですが、なぜ+が必要なのか疑問に思っている部分なのでお手数ですがご教授お願いします。

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

  • ベストアンサー
  • mikemike7
  • ベストアンサー率87% (97/111)
回答No.1

document.write(""); として書き出す時、""内にJavaScriptは書けません。 ですから"を一旦"で閉じ、+としてalpha.charAt(i)が書かれています。 変数に代入する時も同様です。 var word = "abc"; として、 var str = "あああword"; と書いてもstrには あああword が代入されます。 var str = "あああ"+word; と記載することで、 あああabc を代入できます。 この場合の+は足し算のプラスではなく、続けて書きますよ。 という指令のようなものですね。

hyururunn
質問者

お礼

なるほど。そういうことだったんですね。 例を出していただいて凄くわかりやすかったです。 もやもやしていた部分が解決出来ました。 ありがとうございました(^^)

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

以下のようなhtmlを得たいから: <input type='button' onclick='disp(this)' value='a' type='button' /> <input type='button' onclick='disp(this)' value='b' type='button' />  ……略…… <input type='button' onclick='disp(this)' value='z' type='button' /> 添付図は、IE9の開発者ツールでの解析結果。 a、b、……、zをfor文で生成しているという。

hyururunn
質問者

お礼

ありがとうございます。 解決いたしました。

関連するQ&A

  • javascriptのtextbox

    こんばんは。 <html> <body> <center> <br><br> <form name="fuji"> TEXT BOX<br> <input type="text" name="tex"> </form> <SCRIPT type="text/javascript"> var i; i="ABC" document.write("<input type='button' value='↑を変数iに代入' onClick='i=(document.fuji.tex);'>"); document.write("<br><input type='button' value='表示' onClick='document.write(i);'>"); </SCRIPT> </center> </body> </html> でテキストボックスの中身を表示させたいのですが、 上手くいきません。どうすればいいのでしょうか。 また、変数を使わずに直接テキストボックスの中身を 表示させる事はできるのでしょうか。 教えてください。

  • javascriptでラジオボタンを使用した検索をできるようにしたいです

    現在javascriptで任意のラジオボタンを選択すると、外部データベースから簡単な検索が出来るようなものを試しに作っているのですが、ラジオボタンのvalueが認識されないため頭を抱えています。 初歩的かつ、javascriptで行うことではないと思いますが、ご教授いただければ幸いです。 下に内容を入力しますので、宜しくお願いします。 ----------------------- <html> <head> <title>DB</title> <style type="text/css"> <!-- th{background:#000080;color:#ffffff;} .light-center{background:#ffffff;text-align:center;} .light{background:#ffffff;} .dark-center{background:#dddddd;text-align:center;} .dark{background:#dddddd;} --> </style> <script language="javascript" src="./data.js"></script> <script language="javascript"> <!-- var i; var cols=3; var rows=10; var amount=cols*rows; function dataSearch(){ if(document.iform.ichar.length){ if(document.iform.ichar[0].value=="" && document.iform.ichar[1].value==""){ alert("選択してください"); document.iform.ichar.focus(); return false; } var flag=false; var resultWindow=window.open("","Result","toolbar=no,location=no,status=no,menubar=no,width=400,height=200"); resultWindow.document.write("<h3>検索結果</h3>"); resultWindow.document.write("<hr /><table border='1'>"); for(i=0;i<amount;i+=cols){ if(exDB[i]==document.iform.ichar[0].value){ resultWindow.document.write("<tr><td width=60>" + exDB[i] + "</td>"); resultWindow.document.write("<td width=120>" + exDB[i+1] + "</td>"); resultWindow.document.write("<td width=120>" + exDB[i+2] + "</td></tr>"); flag=true; }else{ if(exDB[i]==document.iform.ichar[1].value){ resultWindow.document.write("<tr><td width=60>" + exDB[i] + "</td>"); resultWindow.document.write("<td width=120>" + exDB[i+1] + "</td>"); resultWindow.document.write("<td width=120>" + exDB[i+2] + "</td></tr>"); flag=true; } } } } resultWindow.document.write("</table>"); resultWindow.document.close(); } //--> </script> </head> <body bgcolor="#fff8dc"> <h3>電球検索</h3> <hr /> 検索したい色を選択してください<br /> <form name="iform" onSubmit="dataSearch()"> <input type="radio" name="ichar" value="昼白色" />昼白色 <input type="radio" name="ichar" value="電球色" />電球色<br> <input type="submit" value="Search" /> </form> <hr /> <br /> </body> </html>

  • javascriptバーコードについて

    <!DOCTYPE html> <html> <head> <title></title> </head> <body> バーコード: <input type="text" id="barcode" size="64" value="1234567890abcdefghijklmnopqrstuvwxyz"> </body> <script type="text/javascript"> var textbox = document.getElementById("barcode"); var amount = textbox.value.substr(22,3); textbox.value = amount; </script> </html> 上記のプログラムで何度やってもわからないので再度教えてください。※value="1234567890abcdefghijklmnopqrstuvwxyz valueの中の値は無いものとします。 バーコードリーダーでバーコードを読み込んだ時に、重量だけ表示させたいのですが、ボタンを押すと(textbox.value.substr(22,3))必要な値が表示されますが、ボタンを押さずに表示をさせたいです。 やはりjavascriptはダメでしょうか? 他の言語も考えていますが、VBも視野にいれてますがとりあえずjavascript、phpを使う予定です。 是非お願いいたします。

    • ベストアンサー
    • Ruby
  • javascriptに関する質問です

    9×9のます目一つ一つに・を表示させるプログラムをつくっているのですがなかなかうまくいきませんどなたかご教授ください <script language="JavaScript" type="text/javascript"> <!-- document.write("<center>"); document.write("<h1>・の表</h1>"); document.write("<table border>"); var i; var j; for (i =・;i=<9 ){ document.write("<tr>"); for(j =・;j=<9 ){ document.write("<td>"); document.write(i * j) document.write("</td>") } document.write("</tr>"); } document.write("</table>"); //--> </script>

  • javascriptで取得した値をテキストボックスに・・・

    IE5.5です。 javascriptで取得した値をテキストボックスに格納したいのですが、 うまくいきません。 <SCRIPT language="javascript"> var varVal=true </script> <form> document.write("<input type='hidden' name='myVal' vaue="+varVal+">"); </form> javascriptが初心者でよくわからないのですが、 例えば <input type="hidden" name="myVal" value=varValに格納された値> といった書き方もできるのでしょうか? よろしくご教授願います。

  • JavascriptでInputClassの表示を変えるには

     以下のScriptを作りました。Tagの表示情報をScriptで変更したいのです。以下のdiv class="inC1"は変更されます。input class="inIPC2も変更したいのですが、どうもやり方が異なるようです。  申し訳ありませんがご教授願います。 <html> <head> <title>エレメントの表示</title> </head> <body> <script type="text/javascript"> function Disp_change() { var i = 0, div = document.getElementsByTagName("DIV"); while (div[i]) { if (div[i].className=="inC1") div[i].innerHTML = "change1"; i++; } } function Disp_change_Class() { var i = 0, div = document.getElementsByTagName("DIV"); while (div[i]) { if (div[i].className=="inIPC2") div[i].innerHTML = "change2"; i++; alert ("change2"); } } </script> <body> <div class="frameHead frameDetail"> <div class="inC1">連絡情報</div> <div class="clear"><hr /></div> <div class="inC2"> <input class="button3" type="button" name="fromUserList" value="" onclick="Disp_change()"> <input class="inIPC2">連絡情報</div> </div> <script type="text/javascript"> Disp_change(); Disp_change_Class(); }; </script> </script> </body> </html>  一応動きますので確認してみてくだされば幸いです。 以上、宜しく御願い致します。

    • ベストアンサー
    • Java
  • javascript

    ある文字を入力して、文字を返すロジックですが、 ボックスを作成して入力を行いたいです。 以下のロジックだと、hogeのvalueに文字を入力すると、文字はボックスに返されますが、 valueをスペースにして、value="" htmlで画面上で、文字を入力して、submitを実行しても、文字は返されません。 文字が引き渡されたないのが原因だと思われますが、 submitでどのようにして文字を引き渡してよいか、教えて頂けないでしょうか。 宜しくお願いします。 <form id="sample"> <input type="text" id="hoge" name="hoge" value="pass" size="30"> <input type="text" id="foo" name="foo" value="" size="100"> <INPUT type="submit" value="変換"> <script language="javascript"> (function () { function test(p){var 省略 charAt(i);}return s;} var elements = document.getElementById('sample').elements; elements['foo'].value = test(elements['hoge'].value); }()); </script>

  • javascriptで別ファイルから変数を受け取る

    って方法ありますか?あったら知りたいです。 A.htmlファイル <script type="text/javascript"> var i=0; </script> B.htmlファイル <script type="text/javascript"> h=1+i; document.write("'<p>'+h+'</p>'"); </script> もう一つ、このボタンを押したらB.htmlファイルに移り、変数も一緒に移動する方法も知りたいです。 A.html <form action="B.htm" method="post" onclick="i"> <input type="submit"value="押す" onclik=""> 変数iをBに送りたいです。

  • javascriptについて

    <script type="text/javascript"> <!-- function df(){ var scr=100; if(document.ad.y.checked){ var sty=document.ad.a; for(var i=0;i<3;i++){ if(sty[i].checked){ scr+=20+10*i; break; } } } document.ad.ad1.value=scr; } --> </script> </head> <body> <form action="#" method="POST" name="ad"> <h4>毎日歯を磨きますか?</h4> <p><input type="checkbox" name="y" value="">はい<br> <input type="checkbox" name="n" value="">いいえ</p> <h4>何回</h4> <p>1回<input type="radio" name="a" value=""><br> 2回<input type="radio" name="a" value=""><br> 3回<input type="radio" name="a" value=""></p> <p>何<input type="text" size="20" name="ad1">点</p> <p><input type="button" value="配点" onClick="df()">&nbsp;<input type="reset" value="リセット"></p> </form> </body> </html> プログラムとしては成功しているんですが 解らないところが for(var i=0;i<3;i++) のところです。ラジオボタンに添え字を使って計算をしているという プログラムなのでしょうが たとえばlengthではなくあえて数字を入れてるのは 配列ではないからでしょうか? もう一点 formをつかって button やimage などを使うと 間違いを指摘してもデーターが流れて言ってしまいます。 return falseなど工夫はしてますが データーをtextに入っている文面を消さずに修正させるいい方法はありませんか お願いします。

  • javascriptで困っています。教えてください

    JavaScriptで配列をPOST送信しようとしています。 <form>や<input>を作っておいてではなく、javascriptで生成する関数からしたいと思っています。以下のコードでうまくいきません。 教えていただければありがたいです。よろしくお願いします。 <!DOCTYPE html> <html> <head> <script type="text/javascript"> var ar = new Array(5); ar[0] = 111; ar[1] = 222; ar[2] = 333; ar[3] = 444; ar[4] = 555; function sampleForm(value){ var form = document.createElement('form'); document.body.appendChild( form ); var input = document.createElement('input'); input.setAttribute('type','hidden'); input.setAttribute('name','hidden_input'); input.setAttribute('value', value); form.appendChild(input); form.setAttribute('action','send.php'); form.setAttribute('method','post'); form.submit(); } </script> </head> <body> <a href=“javascript:sampleForm(ar)”>クリックしたら“samplepost”をPOST送信</a> </body> </html> send.php-------------------------------- <?php $num = isset($_POST['hidden_input']) ? $_POST['hidden_input'] : null; print "num: " . $num; ?>

専門家に質問してみよう