メッセージ表示とリセット処理
解決済
回答 3
投稿
- 評価
- クリップ 0
- VIEW 1,784
以下のプログラムに
・すでに○か×が表示されているマスをクリックするとメッセージが表示される。
・どのタイミングにおいてもリセットボタンを押すと全てのマスの表示を「(スペース)」にする。
・全てのマスが埋まるとメッセージが表示されアラートボックスの「OK」を押すと最初からにする。
の処理を加えたいのですがうまく動きません。
<script language="JavaScript">
function init(id){
document.getElementById(id).value =" ";
}
function ticktack(id){
if(document.getElementById(id).value.match(/^×$/)){
document.getElementById(id).value = "○";
}else{
document.getElementById(id).value = "×";
}
}
if(! document.getElementById(id).value.match(/^\S$/)){
message += "そのマスはすでに選ばれています。\n";
}
</script>
</head>
<form name="tick">
<table>
<tr>
<td> <input type="button" id="r1c1" onclick="ticktack('r1c1')"></td>
<td> <input type="button" id="r1c2" onclick="ticktack('r1c2')"></td>
<td> <input type="button" id="r1c3" onclick="ticktack('r1c3')"></td>
</tr>
<tr>
<td> <input type="button" id="r2c1" onclick="ticktack('r2c1')"></td>
<td> <input type="button" id="r2c2" onclick="ticktack('r2c2')"></td>
<td> <input type="button" id="r2c3" onclick="ticktack('r2c3')"></td>
</tr>
<tr>
<td> <input type="button" id="r3c1" onclick="ticktack('r3c1')"></td>
<td> <input type="button" id="r3c2" onclick="ticktack('r3c2')"></td>
<td> <input type="button" id="r3c3" onclick="ticktack('r3c3')"></td>
</tr>
</table>
<input type="reset" value="リセット">
</p>
</form>
</body>
ご指摘の方よろしくお願いします。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
たとえばこんな感じ
あとは拡張してつかってください
<script>
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 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>
<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>
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
inputのタイプをbuttonからtextにしてください
resetは効くようになります
cssなどでbutton風に見せればよいでしょう
全部うまったときのチェックはinputのクリック時にチェックをいれて
うまった時点でform.reset()すればよいでしょう
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
うまく動かないと思われた時には、ブラウザでのデバッグモードを起動してJavaScriptのエラーが何で出ているかを確認すると良いでしょう。たいていのブラウザであればF12でデバッグモードで起動します。
JavaScriptの箇所ですが、以下の2点が気になります。
- init(id) は どこからも呼び出されません。
- 起動直後に
if(! document.getElementById(id).value.match(/^\S$/)){
が呼び出されているのは正しいのか。実はボタンを押した後に実行されるものでしょうか。
他には、HTMLの本文が<body>~</body>
で囲まれていません。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.37%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
2016/06/10 14:23
こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。
kei344
2016/06/10 14:34
https://teratail.com/questions/37480 https://teratail.com/questions/37501 の続きですか?
Alpha
2016/06/10 14:36
プログラムをそのまま使っているので続きという表現になりますね。