• 締切済み

JavaScriptの初歩の質問です。教えてください。

<script language="java script"> <!-- function hello(){ name = prompt("please teach me your name","名前"); flag=confirm("名前は「"+name+"」でいいですか?"); if(flag==true){ alert("こんにちは"+name+"さん alert("hello!"+name+"さん"); } else{ hello(); } } //--> </script> </HEAD> <BODY> <INPUT type="button"value="push bottan please"onClick="hello()"> </BODY> というのを作ってるんですがエラーが出て表示されません。 例文があってそれを自分で入力しているため、入力ミス?とも思うんですが、入力ミスもないような・・・。いったいどこがおかしいんでしょう? 間違えやすい点などもあれば教えてください。

みんなの回答

  • s_doc
  • ベストアンサー率24% (93/377)
回答No.6

今回のエラーに関係するかどうか確認してませんが、 変数名に「name」などの、 予約されたオブジェクト名を使うのはやめましょう。 いつかバグの原因になります。 それから、 上手く動かなくて相談するときは、 ご自身が確認に使っているOSやブラウザのバージョンを書かれると、 適切な回答が早く帰ってくると思いますよ。

yukky25
質問者

お礼

アドバイスありがとうございます。 予約されたオブジェクト名・・ああなんだか聞いたようなきが・・勉強します。 そうか、OSやブラウザのバージョンが必要なんですね。 次回から記入するようにします。

  • so_blue
  • ベストアンサー率48% (50/104)
回答No.5

全ての指摘を反映して、挙動確認すると、WIN/IE5.5は問題なしでしたよ。 NE4.7は日本語部分でエラーになるので、 name = prompt("please teach me your name","名前"); を name = prompt("please teach me your name","NAME"); にするとエラー回避されます。 # 日本語入力されたら一緒なのですが... # エンコードとかの作業が必要そうです もしかすると、HTMLファイルの改行かな? CRLF(と思った)になっているか確認してみてください。

yukky25
質問者

お礼

たびたびありがとうございます。 環境、WIN/IE6なんですよねえ・・・。 で、もういちどイチから入力しなおしたんです。 そしたらきちんと実行されました。 改行とかの問題な気がします。 ありがとうございました。

  • me_no_car
  • ベストアンサー率24% (22/90)
回答No.4

#2さんも回答通り <script language="java script"> を <script language="javascript"> に書き直してくさい。 ここがエラーの原因です。

yukky25
質問者

お礼

ご回答ありがとうございます。 No.2でのお礼でも記載させてもらいましたが、詰めると表示そのものができなくなるんですよね・・。(エラー内容はお手数ですが下記を参照してください) なんかもっと根本的なものがあるんでしょうかね・・・。

回答No.3

私もJavaScriptは3,4年前に1度経験したきりなので、ちゃんとした答えができるかどうかは怪しいのですが・・・ </HEAD> はあるのに、 <HEAD> の記述がありませんよね? 例文はどこかに入っていないでしょうか? 確認してみて下さい。

yukky25
質問者

お礼

たびたびご回答ありがとうございます。 <head>はここへのコピペ時に省略してるだけなんで、エラーには無関係かと思われます・・・。

  • so_blue
  • ベストアンサー率48% (50/104)
回答No.2

直接エラーと関係あるかどうか分かりませんが... <script language="java script"> java script → javascript(スペースなし)では? <INPUT type="button"value="push bottan please"onClick="hello()"> 半角スペースで区切るようにしましょう。下記のように。 <INPUT type="button" value="push bottan please" onClick="hello()">

yukky25
質問者

お礼

ご回答ありがとうございます。 それがですねー、javascriptというように空白を詰めると、ページの表示ができなくなるんですよねー。  ライン10 文字 24 エラー 終了していない文字列型の定数です というエラーが出ます。 ううううううん・・・。

回答No.1

こんにちわ。 入力ミスだと思います。 7行目 alert("こんにちは"+name+"さん 正しくは alert("こんにちは"+name+"さん"); 最後の「);」が抜けています。

yukky25
質問者

お礼

すばやいご回答ありがとうございます。 で、早速修正してみたんですがやっぱり・・・。だめです。 エラーメッセージで、「ライン21 文字1 エラー:オブジェクトを指定してください コード 0 とあるんですけど、21列目・・をみても入力ミスらしいものを みつけられないのです・・。 もしお時間があればまたご回答いただけると本当に助かります・・。 しょっちゅう「オブジェクトを指定してください」のエラーを出してしまうので・・。

関連するQ&A

  • javascriptの動的読み込みについて教えてください

    javascriptの動的読み込みについて教えてください いつもお世話になります。 jqueryを勉強中のものです。 少しややこしいのですが、 以下のmenu.htmlとmain.htmlを持ったframe.htmlで、メニューの試験ボタンを押してmain.htmlの<div id="target_id">にload.htmlを動的に読み込んだ時、loadされたhelloボタンが作動しません。 menu.htmlのtest()中のalert(data);でload.htmlの<script>が読み込まれていることは確認できるのですが・・何が原因でどこが悪いのでしょうか? よろしくご指導お願いします。 frame.html ----------------------------------------------------------- <html> <head> <title>Dynamic Load Test</title> </head> <frameset name="frame" cols="180,*"> <frame name="menu" src="menu.html"> <frame name="MainPanel" src="main.html"> </frameset> </html> ----------------------------------------------------------- menu.html ----------------------------------------------------------- <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"><!-- function test(){ jQuery.get("./load.html",function(data){ alert(data); $("#target_id",window.parent.MainPanel.document).html(data); }); } // --></script> </head> <body> <button onClick="test();">試験</button> </body> </html> ----------------------------------------------------------- main.html ----------------------------------------------------------- <html> <head> </head> <body> <h1>main.html</h1> </body> <div id="target_id"></div> </html> ----------------------------------------------------------- load.html ----------------------------------------------------------- <h1>load.html</h1> <script type="text/javascript"><!-- function hello(){ alert("こんにちわ"); } // --></script> <button onClick="hello();">hello</button> -----------------------------------------------------------

  • javascriptの勉強中です。

    javascriptの勉強中です。 下記の内容を組みたいと考えています。 1) クリックしてダイアログボックスを開きます。 2) ダイアログボックスで名前を入力してもらいます。 3) その入力してもらった名前をあらかじめ決めていた場所に表示させます。 // htmlヘッダ内 <script> function user() { window.prompt ('名前を入力してください',''); } </script> // htmlボディ内 <a onclick="user()">ここをクリックして名前を入力してください。</a> <br> <script> document.write('ここに名前を表示させたい' + 'さん'); </script> 入力ありがとうございます。 ボディ内の'ここに名前を表示させたい'の欄に入力した名前を表示させたいです。 名前を格納して色々な場所で使用したいんです。 色々なサイトを見て、こちらの決めた変数を格納することはわかるのですが、ユーザーが入力した内容を格納する方法を教えていただきたいです。 ヒントでも参考サイトでも結構なので、教えていただけたら幸いです。 何卒よろしくお願いします。

  • JavaScriptが動かない原因

    javascript は、ほとんど分からない初心者なのですが、 ものすごい単純な事で詰まっています。 <html> <head> <title></title> <script type="text/javascript" language=JavaScript> <!-- function alt() { alert("NG"); } //--> </script> </head> <body> <input type="radio" name="test" value="1" onclick="alt()">テスト1<br> <input type="radio" name="test" value="2" onclick="alert('OK')">テスト2<br> </body> </html> このソースで、テスト1のイベントが発生しません。 IEもfirefoxも、ダメでした。 何が悪いのか・・・・ くだらない質問ですみません。宜しくお願い致します。

  • javascript関数呼び出し時の()について

    javascript関数呼び出し時に、 a関数があるとき、 a()をつけることで ・戻り値を代入するという意味になるということ ・関数自体を代入していますので、a関数を実行した戻り値を代入する ということを教えて頂きました。 また、()がないとき、aとした場合、 ・関数の登録だけがされる  ということを教えて頂きました。 (http://okwave.jp/qa/q7383010.html) しかし、以下ソースの場合、onclickには、 関数名pushを[onclick="push"]ではなく、[onclick="push()"]と記述しないと 正しく動作しませんでした。 私的には、 onclickには、「push関数を登録してクリックされたときにだけ動作させる = push だけでいいのではないのか?」 と考え、[onclick="push"][onclick="push()"]の二つのボタンを用意したのですが、 push()ボタン しか 正常に動作しませんでした。 なぜなのでしょうか? ()なしの、関数の登録だけがされる という内容を私は間違って捉えてしまっているのでしょうか。 ご教授お願いします。 以下ソース <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> <!-- function push(){ alert('ボタンが押されました'); } --> </script> <title>簡単実験</title> </head> <body> <h1>関数実験</h1> <hr> <input type="button" value="()ありボタン" onclick="push()"> <input type="button" value="()なしボタン" onclick="push"> </body> </html>

  • 「本当に削除しますか」が正常に動作しない

    このスクリプトで「本当に削除しますか?」のダイアログでキャンセルを押してもYahoo!に飛んでしまうんですが、 どうすればいいでしょうか? <script language="JavaScript"> function kakunin(frm) { flag = confirm("本当に削除しますか?"); if (flag) { alert(flag); frm.submit(); } } </script> <form action="http://yahoo.co.jp/" method="get"> <input type="hidden" value="00001" name="num"> <input type="submit" value="削除" name="delete" onClick="return kakunin(this.form);return false;"> </form>

  • javascript 乱数が取得できない

    はじめまして。 一月ほど前から「パズルネット ソフィア」 http://www.pori2.net/js/number/4.html というサイトでjavascriptの基礎を学んでいるのですが、乱数 を扱う段階になって自分の作成したプログラム(以下) <html> <head> </head> <body onload="Mondai()"> <form name="quiz"> <input type="text" value="" > <input type="button" value="赤" onclick="Push(0)"> <input type="button" value="青" onclick="Push(1)"> <input type="button" value="黄" onclick="Push(2)"> <input type="button" value="緑" onclick="Push(3)"> <input type="button" value="白" onclick="Push(4)"> </form> <script type="text/javascript"> <!-- var col=new Array("red","bleu","yellow","green","white"); var Rnd; function Mondai(){ Rnd=Math.floor(Math.random() * 5 ); document.quiz.element[0].value=col[Rnd]; } function Push(num){ var n=parseInt(num); if( n==Rnd ){ Mondai(); }else{ alert("違います。"); } } // --></script> </body> </html> を実行してもテキストボックス内に何の値も表示されず 、ボタンを押しても「違います。」とだけしか出てきません。 ブラウザはfirefoxを使用しており、javascriptの設定もonに なっています。 カンマや鍵括弧などの記号にも打ち間違いがないかサンプル プログラムを参考にしながら確認してみたのですが、どこにも おかしな点はありませんでした。 サンプルプログラムは下記のとおりで、こちらは正常に実行されます。 <body onload="Mondai()"> <form name="quiz"> <input type="text" value=""> <input type="button" value="赤" onclick="Push(0)"> <input type="button" value="青" onclick="Push(1)"> <input type="button" value="黄" onclick="Push(2)"> <input type="button" value="緑" onclick="Push(3)"> <input type="button" value="白" onclick="Push(4)"> </form> <script type="text/javascript"> <!-- //色名の英単語を配列に入れる var col=new Array("red","blue","yellow","green","white"); //乱数を入れる変数 var Rnd; //テキストボックスに問題文(色名)を表示する関数 function Mondai(){ //0~4までの乱数を発生させる Rnd=Math.floor( Math.random() * 5 ); document.quiz.elements[0].value=col[Rnd]; } //正誤判定関数 function Push(num){ //引数を数字に変換 var n=parseInt(num); //正解なら次の問題を表示、間違っていたらアラートを表示する if ( n == Rnd ){ Mondai(); }else{ alert("違います!"); } } // --> </script> どなたかアドバイスをいただけないでしょうか? よろしくお願いします。

  • javascriptを勉強し始めました

    それで簡単なアンケートを作りたいと思い、入力フォームを作って間違えている箇所があれば確認ボタンを押したときに入力に誤りがある項目をアラートで出し、そのアラートに誤っている項目をそのアラート一つにまとめて出したいのですが、出ません。わかないので質問させていただきました。よろしくお願いします。ソースになります。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>課題</title> <script language ="javascript"> <!-- function datachk(){ if(document.form1.last.value == "") { alert("・氏名(姓)が入力されていません。"); }else{ if(document.form1.last.value.match( /[^一-龠ァ-ヶぁ-ゞA-Z]+/ ) ){ alert("・氏名(姓)は、全角文字のみで入力して下さい。"); }else{ if(document.form1.first.value == "") { alert("・名前(名)が入力されていません。"); }else{ if(document.form1.first.value.match( /[^一-龠ァ-ヶぁ-ゞA-Z]+/ ) ){ alert("・名前(名)は、全角文字のみで入力して下さい。"); } } } } } //--> </script> </head> <body> <div align="center"> 情報入力 </div><br> <br> 以下に、情報を入力してください。<br> <br> <form name = "form1"> *氏名(姓): <input type = "text" name = "last" value = ""><br> (全角10字入力可)<br> *氏名(名): <input type = "text" name = "first" value = ""><br> (全角10字入力可)<br> *性別: <input type = "radio" name = "men" value = "男">男 <input type = "radio" name = "women" value = "女">女<br> <input type="button" value="回答" onClick="javascript:datachk();"><br> </form> </body> </html>

  • クッキーの初歩的質問

    クッキーに下記のような内容を書き込む方法を教えて下さい。上から順にクリックしていったときに、alert(★)の部分を「1,2,3」という結果にしたいのですが。 <SCRIPT language=JavaScript> function memoryCookie(num){ expires = new Date() expires.setTime(expires.getTime() + 24*60*60*1000) document.cookie = "mydata=" + num + ";expires=" + expires.toGMTString() alert(★) } </SCRIPT> <form name="myform"> <INPUT TYPE="CHECKBOX" NAME="test" VALUE="1" onclick="memoryCookie(this.value)">1<BR> <INPUT TYPE="CHECKBOX" NAME="test" VALUE="2" onclick="memoryCookie(this.value)">2<BR> <INPUT TYPE="CHECKBOX" NAME="test" VALUE="3" onclick="memoryCookie(this.value)">3<BR>

  • javascriptの勉強中です

    javascriptについて勉強中で、switch文とif文を組み合わせようと考えています。 やりたいことは、数値を入力してもらい、入力した文字をnumberに表示します。 また、nyuryokuにキャンセルや入力されていないことを通知します。 ここまではできたのですが、入力の確認画面でキャンセルした場合「もう一度入力してください」とアラートと記述を行いたいのですが、trueが返っているのか数値が記載され、「ありがとうございます」の記述が行われます。 この場合はどうすれば入力確認のアラートを出すことができるのでしょうか。 下記をご確認ください。 <script> function putin() { var num = prompt('数値入力'); switch (num) { case '': document.getElementById('nyuryoku').innerText =('入力してください。'); alert ('入力してください'); str = ('入力してください'); break; case null: document.getElementById('nyuryoku').innerText =('キャンセルされました'); str = ('キャンセルされました'); break; default: confirm('入力内容はこちらでよろしいですか?'); if (true) { document.getElementById('number').innerText = num; document.getElementById('nyuryoku').innerText =('ありがとうございます'); } else { alert('入力内容を確認しもう一度入力してください'); document.getElementById('nyuryoku').innerText('入力内容を確認しもう一度入力してください'); } } } </script> <a onclick="putin()">数値はここで入力が必要</a> <br> <span id="number">ここに数値</span> <br> <span id="nyuryoku"></span> ヒントでもよいので、何卒よろしくお願いします。

  • JavaScriptのFormについてだと思うのですが

    私は、仕事上初めてJavaScriptに触れて戸惑っております。 それは、おそらくJavaScriptの記述上の問題だとは思うのですがよくわかりません。確認のダイアログボックスで、保存とキャンセルのボタンを表示させて、「保存」ならそのままデータベースにデータを落として、「キャンセル」なら、データを落とさないという手順でプログラミングしたいのですが、「キャンセル」を選んでも、データがデータベースに落ちてしまいます。どなたかよろしくお願いします。 今、テストでは有りますが、以下のようにプログラミングしています。 <html> <head> <title>test</title> <SCRIPT LANGUAGE="JavaScript"> <!--JavaScript function myEnter(){ myRet = confirm("データを保存してもよろしいですか?"); if (myRet == true) alert("保存されました"); else alert("再確認してください"); } // --> </script> </head> <body> <form action="insert.cfm" method="post"> testname:<input type="text" name="testname"> <br> testday:<input type="text" name="testday"> <br> <input type="submit" value="保存" onClick="myEnter()"> <br> <input type="reset" value="reset"> </form> </body> </html> ちなみに、<form action="insert.cfm">というのは、ColdFusionのファイルです。よろしくお願いします。

専門家に質問してみよう