2016-07-22 38 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'); 
     } 
    } 
    }); 
相关问题