前提・実現したいこと
練習で商品の出品アプリを作っています。
出品ボタンを押すと、javascriptでイベントが発火し、「OK」か「キャンセル」のダイヤログが表示されるようになっています。
OKであれば、トップページに画面繊維。キャンセルであれば、入力した内容が残った状態で、そのページに留まる。
というのを実現したいのですが、「キャンセル」を押した際に「disabled」が付与され、何も入力できない状態となっています。
「disabled」の解除方法を教えていただきたいです。
よろしくお願いします。
該当のソースコード
const confirm = () => { const form = document.getElementById("itemConfirm"); form.addEventListener("submit", (e) => { e.preventDefault(); var result = window.confirm('ボタンをクリック!'); if( result ) { console.log('OKがクリックされました'); document.getElementById("itemConfirm").submit(); } else { var redirect_url ="/items/new"; console.log('キャンセルがクリックされました'); let formElements = document.forms.contactForm; formElements.submit.disabled = false; } }); }; window.addEventListener("load", confirm);
追記
コメントを頂き修正しました。しかし「disabled」が解除されません。
どこが間違っているのでしょうか?よろしくお願いします。
追記内容
・document.forms.contactForm; を
document.getElementById("itemSubmit");に修正。
・formElements.submit.disabled = false; のsubmitを削除
.erbファイルのform_withのsubmitにidを追加
<%= f.submit "出品する" ,class:"sell-btn" , id: "itemSubmit"%>
javascriptファイル const confirm = () => { const form = document.getElementById("itemConfirm"); form.addEventListener("submit", (e) => { e.preventDefault(); var result = window.confirm('ボタンをクリック!'); if( result ) { console.log('OKがクリックされました'); document.getElementById("itemConfirm").submit(); } else { console.log('キャンセルがクリックされました'); let formElements = document.getElementById("itemSubmit"); formElements.disabled = false; } }); }; window.addEventListener("load", confirm);
.erbファイル <%= form_with model: @item, id: 'itemConfirm',local: true do |f| %> //入力欄省略 <%= f.submit "出品する" ,class:"sell-btn" , id: "itemSubmit"%>
上記の記述で、disabledは解除できると思うのですが、解除できませんでした。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/04 10:54
2020/10/04 11:41
2020/10/04 12:35
2020/10/04 23:27
2020/10/04 23:40
2020/10/05 00:04
2020/10/05 00:26
2020/10/05 04:13