当前位置: 首页 > 编程笔记 >

jquery checkbox无法用attr()二次勾选问题的解决方法

邹玄裳
2023-03-14
本文向大家介绍jquery checkbox无法用attr()二次勾选问题的解决方法,包括了jquery checkbox无法用attr()二次勾选问题的解决方法的使用技巧和注意事项,需要的朋友参考一下

今晨,漂亮的测试妹妹提了个奇怪的bug,说我一功能checkbox时隐时现,比如第一次打开有勾选,第n次打开可能就不选了。

想到与美女有亲密接触机会,马上鸡动起来。

经过偶层层抽次剥茧(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(版本jquery-1.9.1.js),要求用jQuery实现全选/全不选、反选,在IE(IE8)中没有问题,但在火狐浏览器中调试的时候出现了一些小问题,达不到效果。 html代码如下: j

  • 本文向大家介绍jquery checkbox 勾选的bug问题解决方案与分析,包括了jquery checkbox 勾选的bug问题解决方案与分析的使用技巧和注意事项,需要的朋友参考一下 在做项目的时候遇到个jQuery checkbok复选框的选中取消的BUG,咨询了大神,才闹明白怎么回事,这里记录下来,分析给大家。 先上代码: 第一次执行,没问题,但第二次执行就有问题了,选择不了 解决办法:把

  • 本文向大家介绍解决JQuery全选/反选第二次失效的问题,包括了解决JQuery全选/反选第二次失效的问题的使用技巧和注意事项,需要的朋友参考一下 最近在项目中,遇到一个问题,测试全选/反选功能时,第一次对母框进行选中/非选中时,能同步子框的全选/反选状态,之后再点击母框,子框就没反应了。 原代码大致结构关键如下: 步骤一:尝试正面刚一波: 卒-----完全没有效果,弃之。 步骤二:快速上网搜索一

  • 本文向大家介绍用Python解决x的n次方问题,包括了用Python解决x的n次方问题的使用技巧和注意事项,需要的朋友参考一下 我考虑到了x的所有n次的情况,下面的代码有可能是不完美的,但是肯定是对的。 以上这篇用Python解决x的n次方问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍JQuery 设置checkbox值二次无效的解决方法,包括了JQuery 设置checkbox值二次无效的解决方法的使用技巧和注意事项,需要的朋友参考一下 在此MVC ASP.NET 项目,我利用jquery ajax传输数据给后台controller控制层,返回数据给JQuery数据。 首先必须清除checkbox的选中,因为是ajax的异步操作,是不刷新页面的,所以需要手段充值

  • 本文向大家介绍微信二次分享报错invalid signature问题及解决方法,包括了微信二次分享报错invalid signature问题及解决方法的使用技巧和注意事项,需要的朋友参考一下 基于微信公众号开发的h5页面(使用jssdk接口),由用户A分享给用户B,用户B再次分享这个页面时,不能成功分享。问题出在用户B收到的分享链接与用户A打开的链接不同 A用户的链接为 http://test.c