#状況
forEach文を使用する処理を書いているが、Uncaught ReferenceError: element is not defined
というエラーが出てしまう。
#ソース
coffeescript
1 $(document).ready -> 2 # 画面遷移時の入力情報の配列を生成 3 @oldMain = Array.from($('.input-main')) 4 @oldMaintenance = Array.from($('.input-maintenance')) 5 6 # valueを生成した配列に詰める 7 @oldMain.forEach (element) -> 8 @oldMainAmounts = new Array 9 @oldMainAmounts.push element.value 10 11 @oldMaintenance.forEach (element) -> 12 @oldMaintenanceAmounts = new Array 13 @oldMaintenanceAmounts.push element.value 14 15 $('.input-main').keyup -> 16 # 現状の入力情報の配列を生成 17 main = Array.from($('.input-main')) 18 # valueを生成した配列に詰める 19 main.forEach(element) -> 20 mainAmounts = new Array 21 mainAmounts.push(element.value) 22 23 # 遷移時と現状で比較し、処理を行う 24 # input-mainクラスに何か入力した時に、input-maintenanceクラスのフォームを非活性にする 25 # 非活性後、遷移時と同じ状態にすれば再び活性となる 26 if @oldMainAmounts != mainAmounts 27 $('.input-maintenance').addClass('disabled') 28 else if @oldMainAmounts == mainAmounts 29 $('.input-maintenance').removeClass('disabled')
入力フォームに文字を入れると、keyupイベントは動くのですが上のエラーが発生します。
main = Array.from($('.input-main'))
のあとにconsole.log main
を入れると、
keyup後、webコンソールにちゃんと表示されるのでここまでは問題ないかとおもうのですが・・・。
おそらくmain.forEach(element)
のelementでエラーが起きているものと思われます。
このエラーがなぜ起きているかが分からなく、解決できません。
教えていただけると助かります。宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/12 02:42
2019/11/12 02:52
2019/11/12 05:19