jquery checkbox無法用attr()二次勾選問題的解決方法
今晨,漂亮的測試妹妹提了個奇怪的bug,說我一功能checkbox時隱時現(xiàn),比如第一次打開有勾選,第n次打開可能就不選了。
想到與美女有親密接觸機會,馬上雞動起來。
經(jīng)過偶層層抽次剝繭(da da jiang you),終于知道了原因:attr()在二次選中勾選框時,失效。
比如,如下HTML頁面,一點【選中】、二點【取消選中】、三點【選中】,瞧,不行了唄。
1.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>prop demo</title>
<style>
img {
padding: 10px;
}
div {
color: red;
font-size: 24px;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<input type="checkbox" checked="checked">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox" checked="checked">
<script>
$( "input[type='checkbox']" ).prop( "checked", function( i, val ) {
return !val;
});
</script>
</body>
</html>
解決方案,是使用prop()替換attr()方法(在Jquery1.6以上),如下代碼:
2.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Attr checked</title>
<script type="text/javascript" src="./js/jquery-1.11.2.js"></script>
<script type="text/javascript">
function switchChecked(flag) {
$("input[type='checkbox']").prop('checked', flag);
}
</script>
</head>
<body>
<input type="checkbox" />
<input type="button" onclick="switchChecked(true)" value="選中">
<input type="button" onclick="switchChecked(false)" value="取消選中">
</body>
</html>
關于官方文檔,見:http://api.jquery.com/attr/
或者http://api.jquery.com/prop/
摘抄如下:“As of jQuery 1.6, the .attr() method returns undefined for attributes that have not been set. To retrieve and change DOM properties such as the checked, selected, or disabled state of form elements, use the .prop() method.”
以上這篇jquery checkbox無法用attr()二次勾選問題的解決方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- jquery操作checkbox火狐下第二次無法勾選的解決方法
- JQuery 設置checkbox值二次無效的解決方法
- jQuery 更改checkbox的狀態(tài),無效的解決方法
- jquery中checkbox全選失效的解決方法
- 多個jquery.datatable共存,checkbox全選異常的快速解決方法
- JQuery觸發(fā)radio或checkbox的change事件
- jQuery判斷checkbox是否選中的3種方法
- JQuery對checkbox操作 (循環(huán)獲取)
- jquery操作復選框(checkbox)的12個小技巧總結
- JQUERY復選框CHECKBOX全選,取消全選
- Jquery遍歷checkbox獲取選中項value值的方法
- jQuery操作CheckBox的方法介紹(選中,取消,取值)
- jQuery中checkbox反復調用attr(''checked'', true/false)只有第一次生效的解決方法
相關文章
jQuery實現(xiàn)仿騰訊微博滑出效果報告每日天氣的方法
這篇文章主要介紹了jQuery實現(xiàn)仿騰訊微博滑出效果報告每日天氣的方法,涉及jQuery鼠標事件及css樣式操作技巧,需要的朋友可以參考下2015-05-05
jquery 重寫 ajax提交并判斷權限后 使用load方法報錯解決方法
這篇文章主要介紹了jquery 重寫 ajax提交并判斷權限后 使用load方法報錯解決方法 的相關資料,需要的朋友可以參考下2016-01-01
Jquery $.getJSON 在IE下的緩存問題解決方法
$.getJSON 的url都是相同的 問題來了 我修改 或者 新增樹節(jié)點 然后刷新tree IE竟然毫無變化 在其他瀏覽器上面都OK,于是搜到一個可行的解決方法2014-10-10
jQuery.cookie.js實現(xiàn)記錄最近瀏覽過的商品功能示例
這篇文章主要介紹了jQuery.cookie.js實現(xiàn)記錄最近瀏覽過的商品功能,結合實例形式分析了基于jQuery.cookie.js插件創(chuàng)建cookie及保存瀏覽記錄的操作技巧,需要的朋友可以參考下2017-01-01
jQuery validate 中文API 附validate.js中文api手冊
jQuery validate 中文API 附validate.js中文api手冊2010-07-07
jQuery插件jcrop+Fileapi完美實現(xiàn)圖片上傳+裁剪+預覽的代碼分享
這篇文章主要介紹了jQuery插件jcrop+Fileapi完美實現(xiàn)圖片上傳+裁剪+預覽的代碼,非常的簡單實用,效果也很棒,有需要的小伙伴可以參考下。2015-04-04

