困っている事
Uncaught SyntaxError: Identifier 'Ok' has already been declared
の解決方法が分からなく困っています。
エラーとしては、変数を再定義にしたことによって起きています。
原因としては、jsを共通化しようと2つのファイルで同じjsのソースを使用しようとしたところエラーが発生しました。
エラーが起きるタイミングとしては、登録フォーム途中で離脱してから再度登録フォームに戻る時に発生します。
リロードすると直るのですがリロードしなくてもエラーが起きないようにしたいです。
js
1let FN = document.getElementById("firsname"); 2let LN = document.getElementById("lastname"); 3 4const Ok = 'God'; 5const Bad = 'Bad'; 6 7 8(function () { 9 'use strict'; 10 let inputText = document.getElementById("first_name"); 11 12 inputText.addEventListener('keyup', function() { 13 let s = inputText.value; 14 if(!!s){ 15 FN.textContent = Ok; 16 ChangeGS(FN); 17 }else{ 18 FN.textContent = Bad; 19 ChangeBS(FN); 20 } 21 }, false); 22})(); 23 24(function () { 25 'use strict'; 26 let inputText = document.getElementById("last_name"); 27 28 inputText.addEventListener('keyup', function() { 29 let s = inputText.value; 30 if(!!s){ 31 LN.textContent = Ok; 32 ChangeGS(LN); 33 }else{ 34 LN.textContent = Bad; 35 ChangeBS(LN); 36 } 37 }, false); 38})(); 39
質問に対する返答
「statusOk」は変数名をわかりやすくするために「ok」に変えたのですが、エラー文の中身が未修正でした。
ググった情報
私なりに調べてみたところ。let
やconst
で宣言されているのが原因で、それらは再定義できないためエラーが起きているとのことでした。解決策としては、var
を使用するとで解決できましたがES6での書き方においてvar
を使用しても大丈夫なのでしょうか?
回答2件
あなたの回答
tips
プレビュー