admin 发表于 2018-5-10 22:24:13

【jQuery】设置Radio/Checkbox组某值为选中状态

$(":radio").prop("checked", "checked");
$(":radio").val();

多选办法:
var visit="1,3,5";
$(":checkbox").val(eval("["+visit+"]"));
以上适用范围为数字

如果是字符串:
var lang="cn,en,jp,hk,kr"
$(":checkbox").val(eval(obj.lang.split(',')));

多个知识点:
1、:radio代替input
2、[]可以连续多个指定radio某值
3、checked用prop()
4、直接用val(),需要转化为数组,注意中括号
举例说明:
json={type: "Product", style: "5", width: "1920", height: "600", click: "0", title:"0"}
$(":radio").val();
$("input").val();
这儿注意三个错误:
val(data.click),错误要加[]转化为数组;
val("["+data.click+"]"),错误[]为字符串,不是数组;
val(["+data.click+"]),仍然错误,json是对象值,无需用字符串值来转换。
唯一正确的:val(),最简单的就是正确的,画蛇添足反而错误。

弘帝系统:login/js/banner.js首次使用。


admin 发表于 2018-5-14 18:19:52

参考文章:JavaScript Array 对象

Array 对象方法
方法        描述
concat()        连接两个或更多的数组,并返回结果。
join()        把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop()        删除并返回数组的最后一个元素
push()        向数组的末尾添加一个或更多元素,并返回新的长度。
reverse()        颠倒数组中元素的顺序。
shift()        删除并返回数组的第一个元素
slice()        从某个已有的数组返回选定的元素
sort()        对数组的元素进行排序
splice()        删除元素,并向数组添加新元素。
toSource()        返回该对象的源代码。
toString()        把数组转换为字符串,并返回结果。
toLocaleString()        把数组转换为本地数组,并返回结果。
unshift()        向数组的开头添加一个或更多元素,并返回新的长度。
valueOf()        返回数组对象的原始值

admin 发表于 2019-4-15 11:36:28

今天在查看他人源码时看到在判断复选框是否选中时,与自己的写法不同:

   .is(":checked") vs .prop("checked") == true

  因此,特地百度了一下,结果如下:

  .attr(‘checked’):   //看版本1.6+返回:”checked”或”undefined” ;1.5-返回:true或false
  .prop(‘checked’): //1.6+:true/false
  .is(‘:checked’):    //所有版本:true/false//别忘记冒号哦

  jquery赋值checked的几种写法:

  所有的jquery版本都可以这样赋值:

  // $(“#cb1″).attr(“checked”,”checked”);
  // $(“#cb1″).attr(“checked”,true);

  jquery1.6+:prop的4种赋值:

  // $(“#cb1″).prop(“checked”,true);//很简单就不说了哦
  // $(“#cb1″).prop({checked:true}); //map键值对
  // $(“#cb1″).prop(“checked”,function(){
    return true;//函数返回true或false
  });

  //$(“#cb1″).prop(“checked”,”checked”);

   综上所述:在判断复选框、单选框等有checked属性的元素是否被选中时,兼容最好的是:

  .is(‘:checked’):    //所有版本:true/false//别忘记冒号哦

admin 发表于 2022-4-16 21:44:11

两种写法的重要提示

当用click点,点击的是,serialize()需要指明form,如下:
$("body").on("click", ".so input", function () {
    $.send("",$('.so form').serialize());
    return false;
});
init();
});

当使用 $(this).serialize()时,必须应用于form,而非,如下:
$("body").on("submit", ".so form", function () {
// $.ajax({
//   type: 'post',
//   dataType: 'html',
//   data: $(this).serialize().replace('+', "%2B"),
//   success: function (data) {
//         console.log(data);
//   }
// });
// return false;
})
以上是需要区别的,避免传参无效。
页: [1]
查看完整版本: 【jQuery】设置Radio/Checkbox组某值为选中状态