前提・実現したいこと
optionタグで選択された項目のvalueをinputタグに挿入したい。
<input type="hidden" name="items[1]products[][variant_id]" value="" /> 上記のvalueの値が、プルダウンで選択されたvalueが追加されるようにしたいのですが、 どのように設定をしたらよいでしょうか....?項目A(value=679)が選択されたら、その値を取得して、空白のvalueに値が入力されるイメージです。
発生している問題・エラーメッセージ
<html> <form id="form" action="https://~~~~" class="form-inline" method="post"> <input type="hidden" name="is_multiple_item" id="is_multiple_item" value="true" /> <input type="hidden" name="items[0]id" id="id" value="60" /> <input type="hidden" name="items[0]cart_item_type" value="single_product" /> <div class="form-group"> <select name="items[0]option_values[0][id]" id="option_values_0_id"> <option value="415">テスト1</option> <option value="416">テスト2</option> <option value="417">テスト3</option> </select> </div> <div>個数 <select name="items[0]quantity" id="quantity" class="form-control custom_quantity"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> </div> <input type="hidden" name="items[1]cart_item_type" value="regular_course" /> <input type="hidden" name="items[1]id" id="id" value="16" /> <input type="hidden" name="items[1]products[][variant_id]" value="" /> <div class="form-group"> <select name="items[1]option_values[1][id]" id="option_values_0_id"> <option value="679">A</option> <option value="481">B</option> <option value="44">C</option> <option value="43">D</option> <option value="42">E</option> </select> </div> <div>個数 <select name="items[1]quantity" id="quantity" class="form-control"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> </div> <button name="button" type="submit" class="btn btn-primary">購入する</button> </form> </html>
試したこと
<script> const selected = document.getElementById("items[1]option_values[1][id]"); selected.onchange = function() { window.location.href = selected.value; }; </script> <script> const selected = $("select[name=items[1]option_values[1][id]]"); selected.on('change', function(){ window.location.href = selected.val(); }); </script>よくわからないまま、上記二点を試したが、おそらくこれは、値を取得するだけ,,,?
以下追加してみてもダメ...
<script type="text/javascript"> <!-- window.onload = function () { //@cc_on document./*@if (1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/ 'change', function (evt) { var e = evt./*@if (@_jscript) srcElement @else@*/ target /*@end@*/; if (e.type=="select-one" && e.name=="items[1]option_values[1][id]"){ alert(e.value); var elements = document.getElementsByName("items[1]products[][variant_id]"); elements[0].value=e.value; } }, true); } // --> </script>
補足情報(FW/ツールのバージョンなど)
画像のように、赤枠部分に値が入っていない....
ここに値が入ればうまくいくはず...
HTML
CSS
JS
結果
HTML&JS
1 2<html> 3 4<form id="form" action="https://〜" class="form-inline" method="post"> 5 6<input type="hidden" name="is_multiple_item" id="is_multiple_item" value="true" /> 7<input type="hidden" name="items[0]id" id="id1" value="60" /> 8<input type="hidden" name="items[0]cart_item_type" value="single_product" /> 9 10<div class="form-group"> 11<select name="items[0]option_values[0][id]" id="option_values_0_id"> 12<option value="415">テスト1</option> 13<option value="416">テスト2</option> 14<option value="417">テスト3</option> 15</select> 16</div> 17 18<div>個数 19<select name="items[0]quantity" id="quantity1" class="form-control custom_quantity"> 20<option value="1">1</option> 21<option value="2">2</option> 22<option value="3">3</option> 23<option value="4">4</option> 24<option value="5">5</option> 25</select> 26</div> 27 28<input type="hidden" name="items[1]cart_item_type" value="regular_course" /> 29<input type="hidden" name="items[1]id" id="id" value="16" /> 30<input type="hidden" name="items[1]products[][variant_id]" value="" /> 31 32 33 34<div class="form-group"> 35 36<select name="items[1]option_values[1][id]" id="option_values_1_id"> 37<option value="679">A</option> 38<option value="481">B</option> 39<option value="44">C</option> 40<option value="43">D</option> 41<option value="42">E</option> 42</select> 43</div> 44 45 46<div>個数 47<select name="items[1]quantity" id="quantity" class="form-control"> 48<option value="1">1</option> 49<option value="2">2</option> 50<option value="3">3</option> 51<option value="4">4</option> 52<option value="5">5</option> 53</select> 54</div> 55 56 57<button name="button" type="submit" class="btn btn-primary">購入する</button> 58<script> 59const input = document.getElementsByTagName("input")[5]; 60const select = document.getElementById("option_values_1_id"); 61 62input.value = select.value; 63console.log(input.value); 64 65select.addEventListener("change", () => { 66input.value = select.value; 67console.log(input.value); 68}); 69</script> 70</form> 71 72</html>
回答1件
あなたの回答
tips
プレビュー