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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1297閲覧

メッセージの表示方法

Alpha

総合スコア41

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/06/13 03:59

https://teratail.com/questions/37507?whotofollow
の続きになります。
リセットボタンの処理まではできたのですがメッセージの表示方法がわかりません。

・全てのマスが埋まるとメッセージが表示されアラートボックスの「OK」を押すと最初からにする。
・すでに○か×が表示されているマスをクリックするとメッセージが表示される。

この二つをmessage += を用いて表示させたいのですがどのようにおいていけばよいのでしょう。

<script language="JavaScript"> try{ document.addEventListener ('click',function(e){myfunc(e)},true); }catch(e){ document.attachEvent('onclick',function(e){myfunc(e)}); } function myfunc(e){ var t = (e.srcElement || e.target); if(t.nodeName=="INPUT" && t.type=="button"){ if(t.value=="×"){ t.value="○"; }else{ t.value="×"; } } if(t.nodeName=="INPUT" && t.type=="reset"){ var f=t.form; for(var i=0;i<f.length;i++){ if(f[i].type=="button") f[i].value=""; } } } </script> </head> <form name="tick"> <table> <tr> <td><input type="button"></td> <td><input type="button"></td> <td><input type="button"></td> </tr> <tr> <td><input type="button"></td> <td><input type="button"></td> <td><input type="button"></td> </tr> <tr> <td><input type="button"></td> <td><input type="button"></td> <td><input type="button"></td> </tr> </table> <input type="reset" value="リセット"> </p> </form> </body>

ご指摘の方よろしくお願いします。

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

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

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

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

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

guest

回答2

0

HTMLやJavascriptでの技術的な内容を考える前に、まずは機能の要件や手続きの順序を整理してみることをお勧めします。1つの技術的なことが解決しても、次にまた同じように技術的なことにつまづいてしまっているようなので。

試したことが記載されていなかったり、自分でわからない部分を掘り下げて質問できていない状態では
「やってほしいことだけを記載した丸投げの質問」と捉えられてしまっても仕方がないですね。
もう少し、要件(やりたいことややっていること)や問題点を掘り下げてみましょうか。


・全てのマスが埋まるとメッセージが表示されアラートボックスの「OK」を押すと最初からにする。

全てのマスが埋まっている状態というのは、具体的に説明するとどのように言い換えられますか?
文章で表現すると難しいかもしれないので、箇条書きで書き出すと良いと思います。
(プログラム的な説明ではなく、仕様的な説明として)
箇条書きの条件は、複数の条件を1つに書かず、なるべく1つの条件だけで箇条書きにしたほうがシンプルでよいです。

・すでに○か×が表示されているマスをクリックするとメッセージが表示される。

こちらについても1つ目と同様に条件を書き出してもらえますか?

上記について具体的に書き出した後に「プログラムではどう書くか?」というステップになります。
上記ステップがない限り、何をしたらよいのか分からず、何を調べたらいいのかも分からないような気がします。
ここは、なれるまで疎かにしないほうが、後々の理解や自分の中の理解度の整理につながります。

メッセージの表示方法

Javasscriptでのメッセージの表示のさせ方は分かりますか?
分からないようであれば調べ方のヒントを追記しようと思います。
分かるようであれば、試した結果をソースコードとして質問文に追加してみてください。

この二つをmessage += を用いて表示させたいのですがどのようにおいていけばよいのでしょう。

この部分はあえて無視しています。
まずは上記のことができてからですかね。手段だけが先行してしまっているように思えます。

また、今記載しているソースコードについては、1つ1つ説明できるくらい理解をしておきましょう。

  • document.addEventListenerとは何をしているのか?
  • myfunc(e)eは何を指すのか?

など。


ちなみに、答えそのものを回答するつもりは全くありません。
考えたのヒントや分からないところを伝えるサポートができればと思っています。

投稿2016/06/13 05:08

takyafumin

総合スコア2335

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

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

Alpha

2016/06/13 08:32

・全てのマスが埋まるとメッセージが表示されアラートボックスの「OK」を押すと最初からにする。 最初の2つの質問については yambejpさんの回答に投稿したコメントを参照していただければ幸いです。 メッセージの表示方法ですが alert文を用いようと思っています。
takyafumin

2016/06/13 09:04

> 最初の2つの質問については > yambejpさんの回答に投稿したコメントを参照していただければ幸いです。 https://teratail.com/questions/37829を確認しましたが、記載いただきたい内容は確認できませんでした。 他の回答者にも分かりやすくなるよう、本質問文に追記をお願いしたいです。 > メッセージの表示方法ですが > alert文を用いようと思っています。 こちらはalert文の利用で良いと思います。
guest

0

ベストアンサー

・全てのマスが埋まるとメッセージが表示されアラートボックスの「OK」を押すと最初からにする。

前回の質問から気になっていたんですが、全部うまるってことは
最後の1個はかならず×になっちゃいますけど大丈夫なのでしょうか?
(最後のあいてるマスをクリックした瞬間全部うまるので)

・すでに○か×が表示されているマスをクリックするとメッセージが表示される。

仕様がいまいちわからないのですが、空のマスをクリックして×→○→×を繰り返したとして
別の任意のマスをクリックしたらその時点でそのマスが確定ということでしょうか?
それでメッセージを表示して、クリックできないようにするという意味でしょうか?

その辺の仕様が中途半端に提示されているのでなんとも言えませんね・・・

投稿2016/06/13 06:07

yambejp

総合スコア114769

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

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

Alpha

2016/06/13 08:27

質問する順番を間違えていました。 https://teratail.com/questions/37829 こちらのがまずできないと成り立たないと思います。 ですが、全部埋まる件については上のが完成するとおそらく9回目(奇数回目)でアラートボックスが表示されるものにいなると思います。 二つ目の質問については https://teratail.com/questions/37829 の順番でやってそのマスは一度クリックされたら変更されないようにした上でアラートボックスのようなものを表示したいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問