前提・実現したいこと
後述のパターン2のやり方で、同じname属性を与えたチェックボックスのvalue値を取得したい。
試したこと(パターン1)
チェックボックスをクリックしたら、選択済の値を取得します(コンソールに出します)。
「あいうえお、かきくけこ、さしすせそ」の3つをクリックします。
html
1<label><input type="checkbox" name="aiueo" value="あいうえお">あいうえお</label> 2<label><input type="checkbox" name="aiueo" value="かきくけこ">かきくけこ</label> 3<label><input type="checkbox" name="aiueo" value="さしすせそ">さしすせそ</label>
js
1$('input[name=aiueo]').on('click', function(){ 2 var vals = $('input[name=aiueo]:checked').map(function(){ 3 return $(this).val(); 4 }).get(); 5 console.log("チェックボックスの値は => " , vals); 6});
コンソールの結果は下記。
チェックボックスの値は => ["あいうえお", "かきくけこ", "さしすせそ"]
ここまでは思った通りです。
さらに試したこと(パターン2)
チェックボックスをクリックした後、「チェック」ボタンをクリックで値を取得します(コンソールに出します)。
同じく、「あいうえお、かきくけこ、さしすせそ」の3つをクリックします。
html
1<label><input type="checkbox" name="aiueo" value="あいうえお">あいうえお</label> 2<label><input type="checkbox" name="aiueo" value="かきくけこ">かきくけこ</label> 3<label><input type="checkbox" name="aiueo" value="さしすせそ">さしすせそ</label> 4<button id="btn_chk">チェック</button>
js
1$("#btn_chk").on("click", function(){ 2 var tgt = $('input[name=aiueo]:checked'); 3 var vals = tgt.map(function(){ 4 return tgt.val(); 5 }).get(); 6 console.log("チェックボックスの値は => " , vals); 7});
コンソールの結果は下記。
チェックボックスの値は => ["あいうえお", "あいうえお", "あいうえお"]
配列の要素数は合っていますが、内容が全て「あいうえお」になります。
続いて、このまま「あいうえお」だけチェックを外して、ボタンを押す。
チェックボックスの値は => ["かきくけこ", "かきくけこ"]
???
「ボタンをクリックで結果を出す」パターン2の方法で、["あいうえお", "かきくけこ", "さしすせそ"]と結果を出す事はできるのでしょうか。
ご教示、よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/30 01:26