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

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

ただいまの
回答率

88.38%

メッセージの表示方法

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 750

Alpha

score 41

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>

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2016/06/13 13:34

    こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 2

+3

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

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


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

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

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

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

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

メッセージの表示方法

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

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

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/13 17:32

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

    最初の2つの質問については
    yambejpさんの回答に投稿したコメントを参照していただければ幸いです。

    メッセージの表示方法ですが
    alert文を用いようと思っています。

    キャンセル

  • 2016/06/13 18:04

    > 最初の2つの質問については
    > yambejpさんの回答に投稿したコメントを参照していただければ幸いです。

    https://teratail.com/questions/37829を確認しましたが、記載いただきたい内容は確認できませんでした。
    他の回答者にも分かりやすくなるよう、本質問文に追記をお願いしたいです。

    > メッセージの表示方法ですが
    > alert文を用いようと思っています。

    こちらはalert文の利用で良いと思います。

    キャンセル

checkベストアンサー

+1

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

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/13 17:27

    質問する順番を間違えていました。
    https://teratail.com/questions/37829
    こちらのがまずできないと成り立たないと思います。

    ですが、全部埋まる件については上のが完成するとおそらく9回目(奇数回目)でアラートボックスが表示されるものにいなると思います。

    二つ目の質問については
    https://teratail.com/questions/37829
    の順番でやってそのマスは一度クリックされたら変更されないようにした上でアラートボックスのようなものを表示したいです。

    キャンセル

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

  • ただいまの回答率 88.38%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る