質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

5回答

1889閲覧

htmlとjavascriptでフォームアプリケーション

keys

総合スコア215

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2016/05/18 02:33

編集2016/05/18 06:38

###前提・実現したいこと
htmlとjavascriptで簡単なプログラミングを作っています
フォームから「戦う」か「逃げる」を選択し
選択に応じて「勝ち」と「負け」を表示させたいです。

###発生している問題・エラーメッセージ

エラーメッセージ

idomu_sample.html:14 Uncaught SyntaxError: Unexpected token else idomu_sample.html:29 Uncaught ReferenceError: Sample3 is not defined idomu_sample.html:29 Uncaught ReferenceError: Sample3 is not definedonclick @ idomu_sample.html:29

###該当のソースコード

!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Sample3</title> <script type="text/javascript"> function Sample3(){ if(document.getElementById("tatataku") { { document.getElementById("result").innerHTML = '勝ち'; } //どういう動きをしてるのか一知半解 else { document.write("負け"); } } </script> </head> <body> <div id="result"></div> <form name="Sample3_form" action="idomu_sample.html"> <input type="radio" id="tatakau" name="radio" />戦う<br> <input type="radio" id="nigeru" name="radio" />逃げる<br> <input type="button" value="Sample3" onclick="Sample3()"> </form> </body> </html>

###試したこと
課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2016/05/18 02:35

コードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「</>」ボタンを押すとコードブロックになります。
退会済みユーザー

退会済みユーザー

2016/05/18 03:57

質問の根本を変更しないでください。 後で同じ事象にあたった人の参考になりません。 質問内容を変えるのであれば、別で質問を立てて下さい。
kei344

2016/05/18 05:04

回答が付いた質問の編集は慎重に行ってください。タイプミス程度なら修正する事もありますが、エラー文まで置き換えるのはやめましょう。そういう場合は「追記」するものです。
keys

2016/05/18 05:35

すみません、使い方がまだよくわかっていなくて、以後気をつけます
guest

回答5

0

質問内容が変わったので回答を分けました。
※ 質問は検索からやってきた同じ悩みを持つ人が閲覧することになるので、質問文を前の物に戻し、新たに起こった問題を追記する形で編集してください。


if の {} は数を数えましょう。インデントをきちんと書けばこういったタイプミスに気づきやすくなります。
また、前回の回答にて radio.value の判定部分はヒントのつもりだったのですが、わかりにくく書いてしまったようです、すいません。

<!DOCTYPE html><html lang="ja"><head><meta charset="utf-8"> <title>Sample3</title> <script> function Sample3() { console.log( document.Sample3_form.radio.value ); if ( document.Sample3_form.radio.value === '戦う' ) { document.getElementById("result").innerHTML = '勝ち'; } else { document.getElementById("result").innerHTML = '負け'; } } </script> </head><body> <form name="Sample3_form" action="idomu_sample.html"> <input type="radio" name="radio" value="戦う" />戦う<br> <input type="radio" name="radio" value="逃げる" />逃げる<br> <input type="button" value="Sample3" onclick="Sample3()"> </form> <div id="result"></div> </body></html>

投稿2016/05/18 06:09

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

エラーを読めるようになりましょう

idomu_sample.html:12 Uncaught SyntaxError: Unexpected token {

12行目に登場する{の記述について「予期していない」と言っています

直前のコードを見てみましょう(少しわかりやすく空白を入れておきます)

if( document.getElementById( "tatataku" )

何かが不足してませんか?

投稿2016/05/18 03:11

takito

総合スコア3111

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

function Sample3(){
に呼応する}がないですね。

投稿2016/05/18 03:10

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/05/18 03:12

開発環境を整えると、エラーが探しやすくなります。 また、エラーはググると大抵出てくるので、探すクセを付けましょう。
退会済みユーザー

退会済みユーザー

2016/05/18 03:44 編集

実コード触ってみました。 エラーは、 if (document.getElementById("tatataku") { 今回のエラーは、こっちで出てますね^^; 失礼しました。 先に、他の方の回答を見て下さい。 その後で、こちらで引っかかるので、参考まで
guest

0

  1. Sample3(){ が閉じられていない
  2. if(document.getElementById("tatataku")問題
  3. document.writeinnerHTML を使うほうが良いのでは

1. かっこ閉じ忘れです。

JavaScript

1Sample3(){ 2// (中略) 3} // ← これがひとつ足りない

2. タイプミスがあります。

JavaScript

1// ↓ 'tatakau' では? 2if(document.getElementById("tatataku") // ← ')' が無い 3{

あと、getElementById は要素を取得する関数なので、ここのifは必ず True になります。
なので下記のように radio の value をとりましょう。(この方法はラジオボタンとチェックボックスに使えます)

JavaScript

1if ( document.Sample3_form.radio.value === '戦う' ) {

3. こういう場合 document.write より innerHTML を使うほうがおすすめです。結果を表示する div を作ってそこに表示するようにしたほうがよいと思います。

HTML

1<div id="result"></div>

JavaScript

1// document.write("勝ち"); 2// ↓ 3document.getElementById("result").innerHTML = '勝ち';

【HTML5でdocument.writeは使ってはいけない? | 3streamer blog】
http://blog.3streamer.net/html5-css3/document-write-html5-181/

【document . writeはやめて、innerHTMLを使おう | Web Developers Antenna ?ウェブ開発者アンテナ? [W'ANEB]】
http://web.antenna.work/innerhtml/

【document.write - Web API インターフェイス | MDN】
https://developer.mozilla.org/ja/docs/Web/API/Document/write

投稿2016/05/18 03:20

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

javascript

1 if(document.getElementById("tatataku") 2 {

↑を↓に変更。

javascript

1 if(document.getElementById("tatataku")) 2 {

かっこ閉じ忘れです。
Unexpected tokenのエラーは、かっこやクォーテーションの閉じ忘れが原因であることが多いので、次は参考にしてみてください。

投稿2016/05/18 03:11

Lhankor_Mhy

総合スコア36074

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問