2012-03-01 110 views
0

我很好奇什么是从一组单选按钮传递值时的最佳做法。特别是如果一个单选按钮可以有多个值。从单选按钮组中传递多个值

在我的例子中,假设某人正在寻找在派对上获得两种类型的食物,1)蛋糕和2)蛋糕和华夫饼。

HTML:

<input id="Cake" name="food" type="radio" value="true"> 
<input id="Both" name="food" type="radio" value="true,false" checked="checked"> 

的JavaScript(jQuery的):

var testString = $('input[name=food]:checked').val(); 

在过去的价值 - “真,假” 我分裂了绳子来获得一个字符串数组 - 虽然最后我真的只需要实际的布尔值 - 真,假。这意味着我将不得不编写另一个函数来解析字符串并将它们转换为布尔值。

最后,值得通过两个值“真的,假的”,还是我应该考虑只是说“全部”,因为最后我仍然必须清理值?在后一种情况下,将“all”转换为true,false的数组并将其传递给后端JavaScript函数。

+1

如果可能,我会避免在值字段中存储多个值。一般来说,为了存储单个值的属性必须依赖分隔符来创建多个值通常是个不错的主意。 – user17753 2012-03-01 18:48:29

+2

复选框组不会更好吗? *检查所有适用*? – Quentin 2012-03-01 18:48:34

+0

@Quentin可能是 - 但这是我留下来的工作。 – firedrawndagger 2012-03-01 18:50:41

回答

1

好了,你可以做“全”的技巧,或者你可以字符串数组转换像这样:

var output = $.map(arrayOfStringsHere, function(item, index) { 
    return Boolean(item); 
}); 

// output should == array of booleans 

给一个去。甚至可以选择复选框。可能会更好。