在網(wǎng)頁制作的過程中,表單提交是不可避免的,而復(fù)選按鈕是表單中非常常見的一個元素。在使用jQuery時,表單提交也相對簡單。下面就來介紹一下jQuery表單提交復(fù)選按鈕的實現(xiàn)方法。
首先,在HTML代碼中應(yīng)該給復(fù)選框設(shè)置好name和value屬性。
<input type="checkbox" name="color" value="red">紅色 <input type="checkbox" name="color" value="blue">藍色 <input type="checkbox" name="color" value="green">綠色
其次,在jQuery中需使用serialize()方法將表單中所有的數(shù)據(jù)序列化,并以字符串的形式返回,以便提交到服務(wù)器。
$('form').submit(function() { var formData = $(this).serialize(); // TODO: 發(fā)送formData到服務(wù)器 });
然而,如果有多個同名的復(fù)選框,serialize()方法將返回多個鍵值對。所以需要使用map()方法來將所有name相同的復(fù)選框合并成一個鍵值對。使用get()方法將map()方法返回的數(shù)組轉(zhuǎn)換成對象。
$('form').submit(function() { var formData = $(this).find(':checkbox[name="color"]:checked').map(function() { return {"name": this.name, "value": this.value}; }).get(); // TODO: 發(fā)送formData到服務(wù)器 });
使用以上代碼,就可以完美地將復(fù)選框的值提交到服務(wù)器了。需要注意的是,如果服務(wù)器接收到的數(shù)據(jù)是由數(shù)組組成的,則會將同名的復(fù)選框值進行合并。