javascriptでformの値を取得したいのですがうまくいきません
index.erb
1 2<body> 3 <%= form_with url: '#' do |f| %> 4 <div class = "form"> 5 <div> 6 <%= f.label :order, '注文'%> 7 <%= f.select :order, [['オレンジジュース', 1],['ビール', 2]], {include_blank: '選択してください'}, {class: 'form-control', id:'order-value'} %> 8 </div> 9 10 <div> 11 <%= f.label :age, '年齢' %> 12 <%= f.select :age, [['10代', 1], ['20代', 2], ['30代', 3]], {include_blank: '選択してください'}, {class: 'form-control', id:'age-value'} %> 13 </div> 14 <div> 15 <%= f.submit '送信', id: 'submit-value', :data => {confirm: '注文しますか?'}%> 16 </div> 17 18 </div> 19 <% end %> 20</body> 21 22<script> 23 const submit = document.getElementById('submit-value'); 24 25 26 submit.addEventListener('click', function(){ 27 let order = document.getElementById('order-value').value; 28 let age = document.getElementById('age-value').value; 29 30 if(order == 2){ 31 if(age == 1){ 32 alert('未成年はダメ!') 33 return false 34 } 35 } 36 }) 37</script>
このようなコードを書いて年齢が10代がお酒を選ぶとアラート、それ以外はrails-ujsによって確認ダイアログを表示させようとしています。
しかしなぜかJS内の
JavaScript
1let order = document.getElementById('order-value').value; 2let age = document.getElementById('age-value').value; 3
ここで値が取得できずうまくいきません。
document.getElementById('order-value')の値はどうやら[object HTMLSelectElement]となってるようなのですが、valueの数字が取得できないのはなぜでしょう・
どなたか知見のある方いらっしゃいましたらご助力いただけますでしょうか、お願いいたします
【追記】
ソースコードがこのようになってるのですがidは<select>内にあり、欲しい値はoption内だから取得できてないってことでしょうか。
もしそうであれば、どうすればvalueの値が取得できますでしょうか。
あなたの回答
tips
プレビュー