弘帝企业智能建站系统交流平台

 找回密码
 立即注册
查看: 4295|回复: 3

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

[复制链接]
发表于 2018-5-10 22:24:13 | 显示全部楼层 |阅读模式
$(":radio[name=gender][value='" + value + "']").prop("checked", "checked");
$(":radio[name=gender]").val([value]);

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

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

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

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


回复

使用道具 举报

 楼主| 发表于 2018-5-14 18:19:52 | 显示全部楼层

参考文章:JavaScript Array 对象

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

使用道具 举报

 楼主| 发表于 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//别忘记冒号哦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-16 21:44:11 | 显示全部楼层

两种写法的重要提示

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

当使用 $(this).serialize()时,必须应用于form,而非[type=submit],如下:
$("body").on("submit", ".so form", function () {
// $.ajax({
//     type: 'post',
//     dataType: 'html',
//     data: $(this).serialize().replace('+', "%2B"),
//     success: function (data) {
//         console.log(data);
//     }
// });
// return false;
})
以上是需要区别的,避免传参无效。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|弘帝企业智能建站系统 ( 皖ICP备07503252号 )

GMT+8, 2024-11-24 01:45 , Processed in 0.047131 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表