2010-01-28 28 views
0

如果使用onsubmit()將表單提交給函數,如何獲得所有複選框值爲name ='values []'的數組?jQuery:抓取表單值

編輯:最初我提到單選按鈕,這是錯誤的 - 複選框是正確的。

編輯:線下只得到了第一個的值,顯然

$("input[name='values[]']:checked").val() 

另外,我怎樣才能提交表單時所選中的複選框的數量?

+0

如果'輸入[名稱=值[]'是一個單選按鈕,這裏只有將是一個':checked'值,由於對單選按鈕的性質...你必須刪除,以獲得所有值 – munch 2010-01-28 20:47:30

+0

是啊對不起,我的意思是複選框 – stef 2010-01-28 20:48:54

回答

3

val返回單個值。要獲得所有值,使用map

var selectedValues = $("input[name^='values']:checked").map(
     function(){ return $(this).val(); }).get(); 

這將返回所有選擇值的數組。爲了得到一個破折號分隔的字符串:

var dashed = selectedValues.join('-'); 
+0

這不會返回任何內容,只是空白值 – stef 2010-01-28 20:53:15

+0

對不起,忘記了':checked'和太多的單引號。這裏有一個工作示例:http://jsbin.com/abovi – Kobi 2010-01-28 20:57:42

+0

完美!有沒有辦法用短劃線代替逗號? – stef 2010-01-28 21:07:30

0

嘗試

$('#formId').serializeArray(); 
+0

一個不錯的主意,但缺少對單選按鈕和複選框的過濾。 – Joel 2010-01-28 20:52:23