- ベストアンサー
表示させた文字を1つだけ戻す方法は?return?
- JavaScriptのコードを使用して表示させた文字を1つだけ戻す方法を知りたいです。
- 下記のコードでは、if文でelseになった場合にreturnにしていますが、一致しているところまで残して途中からやり直す方法を教えてください。
- また、ハッシュタグとしては、JavaScript, コーディング, リセットのキーワードが使えるかもしれません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
入力が間違っていても表示はするということですので、元のスクリプトで (1) 入力した数字をinnerHTMLに追加 (2) 入力した数字が正しいかどうか判定 (3) 間違っていればやり直し となっていたのを、次のようにしたらいいと思います。 (1) innerHTMLは(i-1)文字だけ残して、入力した数字を追加 (2) 入力した数字が正しいかどうか判定 (3) 正しければiを1増やす (4) 間違っていればやり直し function st(n){ stMihon = "1357924680".substr(i-1,1); document.getElementById("anser").innerHTML=document.getElementById("anser").innerHTML.substring(0,i-1) + n; if(n==stMihon){ i++; }else{ alert("正しい数字を入力してください。\nでは、続きから"); //return; //このreturnは不要?? → 不要でしたね。 } }
その他の回答 (1)
- puddingeater
- ベストアンサー率77% (28/36)
質問のスクリプトは (1) 入力した数字をinnerHTMLに追加 (2) 入力した数字が正しいかどうか判定 (3) 間違っていればやり直し となっていますが、次のように修正します。 (1) 入力した数字が正しいかどうか判定 (2) 正しければ入力した数字をinnerHTMLに追加 (3) 間違っていればやり直し function st(n){ stMihon = "1357924680".substr(i-1,1); if(n==stMihon){ document.getElementById("anser").innerHTML += n; i++; }else{ alert("もう一度"); return; //不一致のときに1文字消し入力前に戻す } }
お礼
ありがとうございます。 間違っていればやり直しができました。 しかし、 ボタンを押した数字が 正しいときだけ表示され、 間違ったときは表示されません。 下記のようにしてみましたが、だめでした。 必ず表示させるためには、どうしたらいいでしょうか? <script language="JavaScript"> <!-- var i = 1; var stMihon; function stLoad(){ document.getElementById("anser").innerHTML = ""; } function st(n){ stMihon = "1357924680".substr(i-1,1); document.getElementById("anser").innerHTML += n; if(n==stMihon){ i++; }else{ alert("正しい数字を入力してください。\nでは、続きから"); document.getElementById("anser").innerHTML.substr(0,i-1); return; //このreturnは不要?? } } //--> </script>
お礼
ありがとうございました。