精做高難度防水抓漏/壁癌/油漆等工程 責任施工、合約保固! | 油漆工程,講究細部修整 防潮粉刷,免費估價! |
[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 |
|
廣利不動產-新板特區指名度最高、值得您信賴的好房仲 您的托付,廣利用心為您服務 廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲 完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心! |
姓名: | |||
佈告內容: | |||
其他選項: | |||
|