質問: document.getElementById('character_count'); btn.addEventListener('click', function(){ console.log(getNum.innerHTML); if(getNum.innerHTML <= 10) { alert('OK' + getNum.innerHTML); } else { alert('NG' + getNum.innerHTML); } }) ```
回答: 質問者の意図と異なる値が返されているのが原因です。 getNumには入力文字数ではなく、**残り入力できる文字数**が返っています。 ですが、if文は10文字未満かという制御しかされていませんね。なので、0文字以上という制御を付けないとif文の判定でtrueを返します。 【エラーの原因について】 スクリプトの記述がひょっとして、htmlを読み出す前じゃないでしょうか? そうだとするとinnerHTMLプロパティはセレクタが読み取れないのでnullを返してしまうエラーとなり、何も動きません。 なので、htmlより後にそのスクリプトを記述する必要がありますね(そうすると、システムはちゃんと動きました) 補足 javascriptはどこに記述してもいいのではなく、記述した位置によって読み込む順番が変わるので、ロード時にhtmlからセレクタの要素を取得、操作したりする場合は必ずhtmlより後に記述するか、bodyタグにonLoadイベントなどを与えるかする必要があります。