• 締切済み

□時□分の□に文字を入れる

javaScript初心者です。よろしくお願いします。 <body> <input type="text" name="ji" />時 <script language="javascript"> hizuke = new Date(); ji.value = hizuke.getHours(); </script> 書籍を元にhtmlファイルに上記のスクリプトをかきました。上記スクリプトで現在が12時であれば 12時 と表示されると説明されているのですが上手く行きません。<inputの枠と 時 は表示されるのですが、<input>枠内には何も表示されない状態です。 上記のjavaScript内に、document.write(hizuke); を付け足して見たところ日時は表示されず、ji.value = hizuke.getHours();を削除するとdocument.write(hizuke); は表示されました。 短いコードですが何度も見返してみたのですが、どこに問題があるか分かりません。 <input>枠内にjavaScriptで取得した時間を表示するのに上記コードでの問題解決の方法やアドバイスをいただきたく思います。 よろしくお願いします。

みんなの回答

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.3

もしかして、ブラウザのセキュリティレベルが高すぎるか、Scriptの実行の 問い合わせに、「いいえ」と応答しているのではありませんか?

全文を見る
すると、全ての回答が全文表示されます。
  • oka5130
  • ベストアンサー率66% (35/53)
回答No.2

質問文のコードですが、InternetExplorerだと動くのではないでしょうか? 私のPCで確認してみると、Firefox3では動きませんがInternetExplorer7では動きます。 しかし、InternetExplorerでは動くけどFirefoxでは動かないようなコードは書くべきではありませんので、 何の断りもなくこのようなコードを載せているのであれば今お使いの本はやめておいた方が良いかもしれませんね。 ただ、このコードが「とりあえず何か書いてみよう」的な感じで載せられているだけで、 注意書きでこのコードはInternetExplorerでしか動きませんと書いてあったり、 後から詳しい説明が書いてあったりするかもしれませんので一概には言えませんが…。 JavaScriptの標準に準拠することを基本とするならば、質問文のコードは基本的には間違いです。

全文を見る
すると、全ての回答が全文表示されます。
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

先ず、変数を定義せずに使用しています。 hizuke = new Date(); ji.value = hizuke.getHours(); 変数は定義してから使います。 var hizuke; hizuke = new Date(); でも面倒なので、合成して記述する場合が多いのです。 var hizuke = new Date(); 次に、入力タグ(コントロール)は名前で取得して変数に代入します。 var ji = document.getElementsByName("ji"); 但し、これはメソッド名が示すようにコレクション(配列)なので、 ji[0].value = hizuke.getHours(); のように添え字を付けてください。 配列が嫌なら、Nameではなく、IDにします。 <input type="text" id="ji" />時 var ji = document.getElementById("ji"); ji.value = hizuke.getHours();

goo2408
質問者

お礼

書き込みありがとうございます。 なぜか上手く行かずにいます。 何度かやり直してみてはいるのですが、なぜか上手く行きません。 それから、私が質問文で書いたコードは基本的に間違いなのでしょうか? もしそうなら、この本で勉強するのは考えものかなと思っているところなのですが、この点についてもよろしければ書き込みをいただけたらと思います。よろしくお願いします。 とりあえず、もう一度順にやってみるつもりですが、お礼が遅くなってしまいそうなので書き込みさせていただきました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 複数の入力項目を1つの「NAME="●●"」にまとめたい

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=169697 ↑この質問と全く同じことがやりたいのですが、うまくいきません。 この質問をされた方はついた回答の文章だけでうまくいったようですが、わたしは試行錯誤したのですが、ダメでした。。 下が試行錯誤の結果です。もちろん動作しません。(^-^; どこが間違っているのか、ぜんぜん見当違いのことをしてしまっているのか、どなたかわかる方ご教授ください。 また、上のアドレスの回答の方がおっしゃるのは具体的にどう記述すればよいのか、ずばり正解も教えていただけると大変助かります。 よろしくお願いしたします。 <SCRIPT type="text/javascript" language=JavaScript> <!-- function hizuke(){ h1 = document.form1.hi1.value; h2 = document.form1.hi2.value; h3 = document.form1.hi3.value; document.form1.hizuke.value = h1 + h2 + h3; } // --> </SCRIPT> -------------------------------------------- <form action="http://~.cgi" method="post" onSubmit="hizuke()" name="form1"> <input type="hidden" name="hizuke"> <input type="text" name="hi1" size="" value=""> <input type="text" name="hi2" size="" value=""> <input type="text" name="hi3" size="" value=""> <input type="submit" value="送信"> </form>

  • htmlのテキストボックスに書かれた文字によって

    htmlのテキストボックスに書かれた文字によって表示する文字を変えたいのですが、コードがいまいちどうやって書いていいかわからないのでコードを教えて下さい。よろしくお願いします。 一応できなかったコード↓ <Form name="js"> <input type="text" name="txtb"> </Form> <script> <br> if(document.js.txtb.value="a"){document.write("a")} </script>

  • テキストボックスに文字飾り表示(2の3乗)が出来ない。

    テキストボックスに文字飾り表示(2の3乗)が出来ない。  JavaScriptを使用しテキストボックスに上付き、下付き文字を表示したいのですが上手く表示しません。HTMLのコードが出てしまいます。下記簡単なコードを添付しますので、何方か正しい表示方法を教えてください。 参考までにコード中(1)は正しく表示できず(テキストボックス中)、(2)は正しく表示します。(非テキストボックス) <HTML> <HEAD> <SCRIPT language="JavaScript"> function disp(){ var c=new Array("2"+"3".sup(),"1","2"); document.tm.a1.value=c[0]; // (1) document.write(c[0]); // (2) } </SCRIPT> </HEAD> <body> <FORM name="tm"> <INPUT type="button" value="" onClick="disp()"> <INPUT name="a1" type="text" size="20" width="10"> </FORM> </body> </HTML>

  • ボタンを押すまで次の処理へ行かないようにする方法

    問題を出題して、答えボタンを押すと、答えが表示され、nextボタンが押されると 次の問題を表示するというプログラムを考えているのですが <BODY> <FORM> <SCRIPT type="text/javascript"> <!-- mondai = new Array(); mondai[0] = "問題1"; mondai[1] = "問題2"; answer = new Array(); answer[0] = "答え1"; answer[1] = "答え2"; for(i = 0; i < 2; i++) { document.write(mondai[i] + "<P>"); document.write("<INPUT type=\"button\" value=\"答え\">"); while(true){ if(document.forms[0].elements[0].value == true){ break; } } document.write(kotae[i] + "<P>"); document.write("<INPUT type=\"button\" value=\"次へ\">"); } // --> </SCRIPT> </FORM> </BODY> onclickではなく、ボタンが押されたとわかるには、どのように記述すればいいのでしょうか。 ググッても、欲しい情報が出てこず、困っています。 while(true){ if(document.forms[0].elements[0].value == true){ break; } } このように書いて、valueがtrueなら、押されたってことかな。と自分の想像でコードを書いてみた のですが、うまくいきません。 whileでループさせて、ifボタンが押されたら、breakでwhileを抜け出すように書いたのですが ボタンが押されたを、検知するにはどのように書いたらいいでしょうか。 なお、なにぶん作成途中なので、コードは未完成です。ボタンが押されたというのを、どの ようにコード書いたらいいのかアドバイスいただけるとうれしいです。

  • INPUTでスクリプトを使うには?

    HTMLやJAVAも絡んでくるので その他の部類で投稿させて頂きます。 <INPUT value="<script language="javascript">document.write(getNumFormat('<c:out value="${売上予算}"/>'));</script>"> こんなイメージでJSPに今、メソッドを書き込んでいます。 ここでは、テキストボックスに整数を入力、 またはDBから抽出してきた数字が表示されます。 そこで私がやりたいのは、 整数を三桁区切りのカンマ付きで表示したいのです。 VALUEに記述してある <script language="javascript">document.write(getNumFormat('<c:out value="${売上予算}"/>'));</script> だけだと私の意図する様に表示されますが、 INPUTを付けてしまうと文字列として扱ってしまうため、 命令文がテキストとして表示されてしまいます。 一体、どうすればいいのでしょうか?

  • メールフォームの中身が文字化けする

    携帯でホームページのURLを打つのはとても面倒なのでPCから任意の携帯へ特定ホームページのURLを送るスクリプトを組みました。 でもメールタイトルやメール本文の日本語が文字化けしてしまうのでローマ字でやっています。何かいい方法はありませんか? <html> <head> <title>mail</title> <script language="JavaScript"> var atesaki; </script> </head> <body> <form name="form1"> ここに携帯のアドレスを入れてから送信画面へ進んでください。<br> <input type="text" size="50" maxlength="256" name="MAIL"> <br><br> <input type="button" value="送信画面へ進む" onClick="dainyuu()" > </form> <script language="JavaScript"> <!-- function dainyuu(){ atesaki=form1.MAIL.value; if(atesaki.indexOf("@")>0) { newpage() } } function newpage(){ document.write('<body>'); document.write("<form name='form2'><input type='button' value='戻 る' onClick='history.back()'></form><BR>"); document.write('<form action=mailto:'); document.write(atesaki); document.write("?Subject='URL WO OKURIMASU' method=POST enctype=text/plain name=form3><br>"); document.write("送信を押すと携帯の"); document.write(atesaki); document.write("にURL<br>http://xxxxxxxxxxxxが送信されます。<br>"); document.write("<input type=hidden size=50 maxlength=256 name=URL value=URL WA KORE DESU http://xxxxxxxxxxxx> <br><br>"); document.write('<input type="submit" value="送 信"></form>'); } //--> </script> </body> </html>

  • Operaでselect要素のoption設定が変です。

    こんにちは,よろしくお願いします。 IEやFirefoxでは意図したとおりに表示されるのに,Operaで表示したときだけ,よけいな空白のoptionが表示されて困っています。 (ソースの表示をしても,空の<option></option>が入っているというわけではありません。何も無いようなのですが,下向き▼をクリックすると空白の選択肢が挿入されています。) 下のようにselect要素に時刻のoptionを設定しました。 document.getElementById("ji")がselect要素です。 var start = new Date(2000,1,1,8,0); var end = new Date(2000,1,1,16,0); var zzz = new Date(); zzz.setTime(start.getTime() + (15 * 60 *1000)); for(i=0; i< 24-zzz.getHours(); i++){  if(i + zzz.getHours() < 10){   document.getElementById("ji").options[i] = new Option("午前 " + (i + zzz.getHours()) , (i + zzz.getHours()) + "");  }else if(i + zzz.getHours() < 12){   document.getElementById("ji").options[i] = new Option("午前" + (i + zzz.getHours()) , (i + zzz.getHours()) + "");  }else if(i + zzz.getHours() >= 12 && i + zzz.getHours() < 22){   document.getElementById("ji").options[i] = new Option("午後 " + (i + zzz.getHours() - 12) , (i + zzz.getHours()) + "");  }else if(i + zzz.getHours() >= 22){   document.getElementById("ji").options[i] = new Option("午後" + (i + zzz.getHours() - 12) , (i + zzz.getHours()) + "");  } } ここまでは,問題なく表示されます。ここで問題なのは,次のように,selectedの設定をしようとするとよけいな空白optionが挿入されます。 for(i=0; i<24; i++){  if(end.getHours() == parseInt(document.getElementById("ji").options[i].value)){  document.getElementById("end_ji").options[i].selected = true;  break;  } } そこで, document.getElementById("end_ji").options[i].selected = true;の行の前に,次のようなalert文を挿入すると, alert("i = " + i + " optval = " + parseInt(document.getElementById("ji").options[i].value) + " end = " + end.getHours()); なぜか,無駄な空白の選択肢が消えて,きちんと表示されました。 Operaが,「 options[i].selected 」の仕様で,IEやFirefoxと違う点があるのでしょうか? いったい何が原因なのでしょうか?よろしく御指導ください。お願いします。

  • JavaScriptの間違いがどこか教えてください。

    JavaScriptを勉強しはじめたばかりで、つまずいております。 時間ごとに違った言葉を表示するというJavaScriptです。 どこが間違えているのかわからないので、教えてください。 間違いはこの中にあるはずなのですが…。 <script type="text/javascript"> <!-- now = new Date(); nowhours = now.getHours(); document.write(nowhours); if (nowhours <= 3) { msg = "こんばんは"; } eles if (nowhours <= 11) { msg = "おはようございます"; } eles if (nowhours <= 16){ msg = "こんにちは"; } eles { msg = "こんばんは"; } document.write(msg); //--> </script> 正しい答えは <script type="text/javascript"> <!-- now = new Date(); nowhours = now.getHours(); document.write(nowhours); if (nowhours <= 3 ) { msg = "こんばんは"; } else if (nowhours <= 11) { msg = "おはようございます"; } else if (nowhours <= 16){ msg = "こんにちは"; } else { msg = "こんばんは"; } document.write(msg); // --> </script> なのですが、どこが違うのかまったくわかりません。

    • ベストアンサー
    • Mac
  • JavaScript 外部ファイルの記述

    <script Language="JavaScript"><!-- h = (new Date()).getHours(); if ( h < 6) document.write("外は暗いですね"); if ((h >= 6) && (h <12)) document.write("午前中"); if ((h >= 12) && (h <20)) document.write("午後です"); if ( h >= 20) document.write("夜です"); // --></script> これは時間ごとに違った文字を表示するものです。 このJavaScriptを外部ファイル化したいのですが、うまくいきません。 以下のように記述しました。 h = (new Date()).getHours(); if ( h < 6) document.write("外は暗いですね"); if ((h >= 6) && (h <12)) document.write("午前中"); if ((h >= 12) && (h <20)) document.write("午後です"); if ( h >= 20) document.write("夜です"); これでどこか間違っているところがあるのでしょうか? よろしくお願いします。

  • 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> でテキストボックスの中身を表示させたいのですが、 上手くいきません。どうすればいいのでしょうか。 また、変数を使わずに直接テキストボックスの中身を 表示させる事はできるのでしょうか。 教えてください。

用紙サイズ選択できない
このQ&Aのポイント
  • パソコンをかえたら今までできていた用紙サイズの選択(A5)ができなくなった。用紙サイズ選択項目が少なくなった。
  • Windowsで無線LAN接続している環境において、新しいパソコンにすると用紙サイズの選択が制限されてしまい、A5の用紙サイズを選択できなくなりました。
  • 用紙サイズの選択に制限があり、パソコンを変えたことでA5の用紙サイズが選べなくなって困っています。
回答を見る

専門家に質問してみよう