wordpressでプラグインのコンタクトフォーム7を使っています。
以下のようなチェックボックス群を出力させました。
<form name="specialistForm" class="wpcf7-form init" action="xxxxxxx"> <input class="hide" type="checkbox" name="recipient[]" value="test1@gmail.com"> <input class="name" type="checkbox" name="spacialist01[]" value="AAA" > <input class="hide" type="checkbox" name="recipient[]" value="test2@gmail.com"> <input class="name" type="checkbox" name="spacialist01[]" value="BBB" > <input class="hide" type="checkbox" name="recipient[]" value="test3@gmail.com"> <input class="name" type="checkbox" name="spacialist01[]" value="CCC" > </form>
これらのcheckboxのspacialist01のみをjsで取得し、foreachで回してイベント処理をさせたいです。
(spacialist01の後に[]をつけているのはメールで配列として受け取るために必要みたいです。これがないと複数選択しても値が1つだけ出力されたメールが届きました)
クリックしたspacialist01の前に隣接するcheckbox(recipient[])を、チェックtrueにするのが目的です。
spacialist01の選択肢によって、それぞれ違うメールアドレスが裏側で選択されるようにしたいです。
以下試しているコードです。
if(document.specialistForm !== undefined){ let list = document.specialistForm.getElementsByClassName('name'); // let list = document.specialistForm.spacialist01; // let list = $('.Consultsingle_wrap .form input[class="name"]'); console.log(list); list.forEach(function (item) { item.addEventListener('click', function(){ if(item.checked === true){ console.log(item.checked); console.log(item.previousElementSibling); item.previousElementSibling.checked = true; } else { console.log(item.checked); console.log(item.previousElementSibling); item.previousElementSibling.checked = false; } }) }); }
console.log(list)でみる限り、配列は取得できています。
HTMLCollection (2) 0 <input checked="checked" class="name" id="テストさんB" type="checkbox" name="spacialist01[]" value="テストさんB"> 1 <input class="name" id="テストさんA" type="checkbox" name="spacialist01[]" value="テストさんA">
しかし以下のエラーが出てしまいます。
▼エラー
TypeError: undefined is not a function (near '...list.forEach...')
このエラーの原因が掴めずでして、どのような解決できますでしょうか?
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/23 10:45
2020/12/23 11:39