2016-07-22 59 views
0

我已經準備了jsFiddle我的問題:獲取所有選中的複選框,可能有相同的值

screenshot

在一個文字遊戲,我想在玩家手中所有信牌顯示一個對話框 - 和讓她選擇一些與堆交換。

這些字母不是唯一的,例如,玩家可能會在上面的屏幕截圖中有一隻手「ABCDAB」 - 並選擇「ABA」進行交換。

這裏是我的代碼 -

HTML(用對話和按鈕):

<div id="swapDlg" title="Swap letters"> 
    <p>Select letters for swapping:</p> 
    <div id="swapList"> 
    </div> 
</div> 

<button id="swapBtn">Swap letters</button> 

的JavaScript:

$(function() { 
    $('#swapDlg').dialog({ 
    modal: true, 
    minWidth: 400, 
    autoOpen: false, 
    buttons: { 
     'Swap': function() { 
     $(this).dialog('close'); 
     var result = 'How to get all selected letters?' // HERE 
     alert('You would like to swap: ' + result); 
     }, 
     'Cancel': function() { 
     $(this).dialog('close'); 
     } 
    } 
    }); 

    $('#swapBtn').button().click(function(e) { 
    e.preventDefault(); 
    $('#swapDlg').dialog('open'); 
    }); 

    var str = 'AB*CD*AB'; 
    var checkBoxes = []; 
    for (var i = 0; i < str.length; i++) { 
    var letter = str[i]; 
    if (letter != '*') { 
     checkBoxes.push('<label><input type="checkbox" value="' + 
     letter + '">&nbsp;' + letter + '</label>'); 
    } 
    } 

    $('#swapList') 
    .empty() 
    .append(checkBoxes.join('<br>')); 
}); 

請幫我用標線// HERE評論。

如何到達那裏的結果作爲字符串與所有checked值?

回答

1

遍歷檢查元素 - 從它創建的字符串,並添加alertbox,添加這個腳本:

演示:http://jsfiddle.net/9cdjjsL5/

var a = []; 
    $("input:checked").each(function() { 
     a.push($(this).val()); 
    }); 
    var str = a.join(', '); 
2

你想要的東西,如:

 var list = $(":checked").map(function(){return $(this).attr("value");}).get(); 

請注意,從使用的最多的回答:jQuery - get a list of values of an attribute from elements of a class幫我回答這個問題。

小提琴(更新使用連接到數組轉換爲字符串):http://jsfiddle.net/6nddum4q/5/

+1

這將返回一個數組,你仍舊需要降低操作(亦即。'。加入()')得到一個字符串 – blgt

+0

@blgt你是絕對正確的,這是一個帶。加入小提琴(「」):[Fiddle](http://jsfiddle.net/6nddum4q/5/) –

1
 var result = []; 
     $('#swapList input:checkbox:checked').each(function() { 
         result.push($(this).val()); 
        }); 
     alert('You would like to swap: ' + result.join("")); 
1

這也將工作檢查出你的小提琴。

result = ''; 
$(function() { 
    $('#swapDlg').dialog({ 
    modal: true, 
    minWidth: 400, 
    autoOpen: false, 
    buttons: { 
     'Swap': function() { 
     $(this).dialog('close'); 
     $('#swapList input:checked').each(function() { 
      result += this.value; 
      result += " "; 
     }); 
     alert('You would like to swap: ' + result); 
     }, 
     'Cancel': function() { 
     $(this).dialog('close'); 
     } 
    } 
    }); 
相關問題