前提・実現したいこと
練習で商品の出品アプリを作っています。
出品ボタンを押すと、javascriptでイベントが発火し、「OK」か「キャンセル」のダイヤログが表示されるようになっています。
OKであれば、トップページに画面繊維。キャンセルであれば、入力した内容が残った状態で、そのページに留まる。
というのを実現したいのですが、「キャンセル」を押した際に「disabled」が付与され、何も入力できない状態となっています。
「disabled」の解除方法を教えていただきたいです。
よろしくお願いします。
該当のソースコード
javascript
1 2const confirm = () => { 3 const form = document.getElementById("itemConfirm"); 4 form.addEventListener("submit", (e) => { 5 e.preventDefault(); 6 7 var result = window.confirm('ボタンをクリック!'); 8 9 if( result ) { 10 console.log('OKがクリックされました'); 11 document.getElementById("itemConfirm").submit(); 12 } 13 else { 14 console.log('キャンセルがクリックされました'); 15 let formElements = document.getElementById("itemSubmit"); 16 formElements.disabled = false; 17 } 18 }); 19}; 20window.addEventListener("load", confirm);
rails
1 2 <%= form_with model: @item, id: 'itemConfirm',local: true do |f| %> 3 4//入力欄省略 5 6 <%= f.submit "出品する" ,class:"sell-btn" , id: "itemSubmit"%>
上記の記述で、disabledは解除できると思うのですが、解除できませんでした。
ちなみに、javascriptファイルの
const form = document.getElementById("itemConfirm");
の、**getElementById("itemConfirm");をgetElementById("itemSubmit");に変更すると、
「disabled」は消えるのですが、ダイヤログが表示されなくなりました。
**
よろしくお願いいたします。
追記
[disabledが解除されませんリンクはGyazoGifのリンクになります。
GyazoGif
以下、railsのコードになります。
rails
1<div class="items-sell-contents"> 2 <div class="items-sell-main"> 3 <h2 class="items-sell-title">商品の情報を入力</h2> 4 <%= form_with model: @item, id: 'itemConfirm',local: true do |f| %> 5 <div class="new-items"> 6 <div class="weight-bold-text"> 7 商品名 8 <span class="indispensable">必須</span> 9 </div> 10 <%= f.text_area :name, class:"items-text", id:"item-name", placeholder:"商品名(必須 40文字まで)", maxlength:"40" %> 11 <div class="items-explain"> 12 <div class="weight-bold-text"> 13 商品の説明 14 <span class="indispensable">必須</span> 15 </div> 16 <%= f.text_area :text, class:"items-text", id:"item-info", placeholder:"商品の説明" ,rows:"7" ,maxlength:"1000" %> 17 </div> 18 </div> 19 <div class="price-text"> 20 <span>価格</span> 21 <span class="indispensable">必須</span> 22 </div> 23 <span class="sell-yen">¥</span> 24 <%= f.text_field :price, class:"price-input", id:"item-price", placeholder:"例)300" %> 25 <div class="sell-btn-contents"> 26 <%= f.submit "出品する" ,class:"sell-btn" , id: "itemSubmit"%> 27 </div> 28 </div> 29 <% end %> 30</div>
追記#2
debuggerで確認したところ、disabledは一度解除されていることがわかりました。
しかし、rails-ujs-jsというファイルで、disabledが追加されていることが分かりました。
このファイルは、javascriptをを使用する際に作られるファイルで編集しようがない場所になると思うのですが、これはどうにかなるものなのでしょうか??
disabledが解除されているところ
https://gyazo.com/70bbb3493926b43bdb83ad4710d13efe
rails-ujs-jsファイルで、disabledが追加されているところ
https://gyazo.com/cf2a087c6378fcd1edc46d68ff37cf93
回答2件
あなたの回答
tips
プレビュー