資深設計公司,提供專業室內裝潢設計服務 以量制價,花小錢享精緻居家設計風格 | 室內外招牌實績破萬件,找對設計師,廣告效果一級棒 材質選擇多,歡迎來電洽詢 |
[JQuery] 取得表單資料、單選 Radio 與多選 Che |
房東:阿弟 發表時間:2012-01-21 | [檢舉] |
透過 jQuery 取得 HTML 表單資料其實不難,但每次遇到要取得 Radio 單選選項的選取值與 Checkbox 多選的選取值都要花些時間查詢取值的方法,網路上能搜尋到的方法也大多是舊版 jQuery 的語法已經不適用了,因此特別撰文筆記一下,也順便把取得各式 HTML 表單欄位的方法做個整理。 1. 取得文字欄位內容的方法 ( text, textarea, password ) $(\'input[name="firstname"]\').val();
2. 取得(單選)下拉選單的方法 ( select ) $(\'select[name="cars1"]\').val();
3. 取得(多選)下拉選項的方法 ( select multiple ) 取得多選的下拉選單在 jQuery 裡面還算簡單,用法跟單選的下拉選單差不多,唯一需要注意的是回傳的型別不再是字串,而是一個字串陣列,即便你選中的只有一個,回傳的型別依然是個陣列,如下範例: var selectedValues = $(\'select[name="cars2"]\').val() || []; 注意:如果沒有任何一項被點選的話,上述程式回傳的型別會是 undefined 喔,也因此建議各位在撰寫取得多選下拉選單的值時可以運用上述技巧,當無回傳值時也回傳一個空的陣列,以避免程式因為誤判為陣列而導致 JavaScript 發生例外狀況!
4. 取得(單選)選項的方法 ( radio ) 多個 radio 會共用一個欄位名稱,同名的 radio 項目只會有一個被選中,因此可以透過 :checked 選取器幫我們選出被使用者選取的項目,如下範例: $(\'input:radio:checked[name="gender"]\').val(); 注意:如果沒有任何一項被點選的話,上述程式回傳的型別會是 undefined 喔!
5. 取得(多選)選項的方法 ( checkbox ) 這方法就麻煩了些,因為 Checkbox 是可以多選的,而且這些多選的選項都擁有相同的欄位名稱,而 jQuery 對於處理 checkbox 的方式並不像 多選下拉選單 (select multiple) 直接回傳陣列那樣直覺,如果你用以下程式碼撰寫程式,得到的將只會有「第一個勾選項目」的值,並非所有勾選項目的完整內容! $(\'input:checkbox:checked[name="vehicle"]\').val(); 若你想取得所有勾選項目值為一個陣列,寫法稍微複雜一些些,第一種寫法要先定義好一個陣列再透過 .each() 取值: var cbxVehicle = new Array(); 另一個寫法是透過 .map() 將回傳值轉譯成為另一種陣列,如下: $(\'input:checkbox:checked[name="vehicle"]\').map(function() { return $(this).val(); }).get(); 另外還有一種解法,就是透過 jQuery Batch Plugin 來取值,載入這個 Plugin 後,程式碼變成如下: $(\'input:checkbox:checked[name="vehicle"]\').vals()
注意事項
相關連結
http://blog.miniasp.com/post/2011/04/26/jQuery-get-form-value-Checkbox-Radio.aspx |
廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲 完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心! 廣利不動產-新板特區指名度最高、值得您信賴的好房仲 您的托付,廣利用心為您服務 |