• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:表示させた文字を1つだけ戻す方法は?return?)

表示させた文字を1つだけ戻す方法は?return?

このQ&Aのポイント
  • JavaScriptのコードを使用して表示させた文字を1つだけ戻す方法を知りたいです。
  • 下記のコードでは、if文でelseになった場合にreturnにしていますが、一致しているところまで残して途中からやり直す方法を教えてください。
  • また、ハッシュタグとしては、JavaScript, コーディング, リセットのキーワードが使えるかもしれません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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は不要?? → 不要でしたね。 } }

tekkenman7
質問者

お礼

ありがとうございました。

その他の回答 (1)

回答No.1

質問のスクリプトは (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文字消し入力前に戻す } }

tekkenman7
質問者

お礼

ありがとうございます。 間違っていればやり直しができました。 しかし、 ボタンを押した数字が 正しいときだけ表示され、 間違ったときは表示されません。 下記のようにしてみましたが、だめでした。 必ず表示させるためには、どうしたらいいでしょうか? <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>

関連するQ&A