2012-03-01 111 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 

給一個去。甚至可以選擇複選框。可能會更好。