2017-11-16 16 views
0

ここではちょっとした状況があります。複数のチェックボックス(Javascript)の値を取得し、選択に基づいて異なる値を割り当てる

私は配列として格納されている選択肢を持つ一連のフォームを持っています。私はインデックスで正しい答えに対して選択肢をチェックしているので、インデックスと要素の量は非常に重要です。

私の問題は、htmlチェックボックスのチェックされた値とチェックされていない値を保持しているこれらの2つの配列を連結しようとする理由です。

すなわち:let comb = checked.concat(unchecked)

let checked = $('input:checkbox:checked').map(function() { 
return this.value;}).get(); 

let unchecked = $('input:checkbox:not(:checked)').map(function() { 
return "100"; }).get(); 

そのコードの問題は、それが正しい答えに対する特異的指標でチェックしているコードを壊し選択の順番を、台無しです。私は必要なもの

(あなたがリターンを見ることができるように「100」)は、すべてのチェックボックスの値を取得し、それがチェックされている場合のみ、HTML値を割り当て、それ以外のいくつかの任意の値を挿入することで、このような

何か(ではありません)構文上正しいか実行可能:

let checked = $('input:checkbox').map(function() { 
if ('input:checkbox:checked'){ . //if checked 
return this.value;}).get();}else if ('input:checkbox:not(:checked)'){ //if unchecked 
return "100"; }).get(); 
} 

答えて

1

あなたにis()を使用して、全体の条件付きマップ内の()コールバック

let checked = $('input:checkbox').map(function() { 
    // if checked return the value , if not return "100" 
    return this.checked ? this.value : '100'; 
}).get(); 

または長時間手にする必要がありますあなたはしようとしていた

let checked = $('input:checkbox').map(function() {  
    if($(this).is(':checked')){ 
    return this.value; 
    }else{ 
    return '100'; 
    } 
}).get(); 
+0

良いもの!! 6分で選択します。ありがとう! – riemannsolve

関連する問題