首页 > 其他分享 >原生js和jquery判断单选复选框是否选中

原生js和jquery判断单选复选框是否选中

时间:2023-12-27 17:25:00浏览次数:39  
标签:jquery index checked attr elem 复选框 单选 input

用jquery判断设置单选复选框时,有时会有些迷糊,今天总结下。

<dl>
  <dt>单选框</dt>
  <dd>
    <label><input type="radio" name="gender" value="男" />男</label>
    <label><input type="radio" name="gender" value="女" />女</label>
  </dd>
  <dt>复选框</dt>
  <dd>
    <label><input type="checkbox" name="fun" value="篮球" />篮球</label>
    <label><input type="checkbox" name="fun" value="足球" />足球</label>
    <label><input type="checkbox" name="fun" value="乒乓球" />乒乓球</label>
  </dd>
</dl>
<button onclick="setValue()">原生js设置值</button>
<button onclick="getValue()">原生js取值</button>
<button onclick="setVal()">jquery设置值</button>
<button onclick="getVal()">jquery取值</button>
<!-- <script src="./plugins/jquery/jquery-3.6.0.min.js"></script> -->
<script src="./plugins/jquery/jquery-1.12.4.min.js"></script>
<script>
  function setValue() {
    document.querySelectorAll('input[name="gender"]').forEach((elem, index) => {
      if (index < 1) {
        elem.checked = true;
      } else {
        elem.checked = false;
      }
    });
    document.querySelectorAll('input[name="fun"]').forEach((elem, index) => {
      if (index < 1) {
        elem.checked = true;
      } else {
        elem.checked = false;
      }
    });
  }

  function getValue() {
    let gender = "";
    document.querySelectorAll('input[name="gender"]').forEach((elem) => {
      if (elem.checked) gender = elem.value;
    });
    const fun = [];
    document.querySelectorAll('input[name="fun"]').forEach((elem) => {
      if (elem.checked) fun.push(elem.value);
    });
    console.log("原生js checked属性判断", gender, fun);
  }

  function setVal() {
    $('input[name="gender"]').each((index, elem) => {
      //不生效
      // if (index < 1) {
      //   $(elem).attr("checked", true);
      // } else {
      //   $(elem).attr("checked", false);
      // }

      //生效
      if (index < 1) {
        $(elem).prop("checked", true);
      } else {
        $(elem).prop("checked", false);
      }
    });
    $('input[name="fun"]').each((index, elem) => {
      //不生效
      // if (index < 1) {
      //   $(elem).attr("checked", true);
      // } else {
      //   $(elem).attr("checked", false);
      // }

      //生效
      if (index < 1) {
        $(elem).prop("checked", true);
      } else {
        $(elem).prop("checked", false);
      }
    });
  }

  function getVal() {
    let gender1 = "";
    let gender2 = "";
    let gender3 = "";
    $('input[name="gender"]').each((index, elem) => {
      if ($(elem).is(":checked")) gender1 = elem.value;
      if ($(elem).attr("checked")) gender2 = elem.value;
      if ($(elem).prop("checked")) gender3 = elem.value;
    });
    const fun1 = [];
    const fun2 = [];
    const fun3 = [];
    $('input[name="fun"]').each((index, elem) => {
      if ($(elem).is(":checked")) fun1.push(elem.value);
      if ($(elem).attr("checked")) fun2.push(elem.value);
      if ($(elem).prop("checked")) fun3.push(elem.value);
    });
    console.log('jquery is(":checked")方法判断', gender1, fun1);
    console.log('jquery attr("checked")方法判断', gender2, fun2);
    console.log('jquery prop("checked")方法判断', gender3, fun3);
  }
</script>

才发现记忆总是有些偏差,偏偏记得attr方法是可用的。而现实就是attr方法是不可用的那个。

 

标签:jquery,index,checked,attr,elem,复选框,单选,input
From: https://www.cnblogs.com/caroline2016/p/17930987.html

相关文章

  • Javascript 原型链 jQuery原型链 js原型链 我感觉我能一直写下去 扶着我>_<
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>原型链闭环</title><scriptsrc="./jquery.js"></script></head><body><divclass=&quo......
  • 记一次el-checkbox包裹一层div,点击div勾选复选框,点击复选框却没反应的bug
    <divclass="account-item"v-for="iteminaccountList":key="item.id":class="[{'is-select-mode':isSelectMode},{'is-select':item.isSelect}]"@click="selectItem......
  • html jquery from 表单提交 application/x-www-form-urlencoded 改成 json
    htmljqueryfrom表单提交$(form).ajaxSubmitapplication/x-www-form-urlencoded改成json<formclass="formform-horizontal"id="form-admin-add"><divclass="rowcl"><labelclass="form-labelcol-xs-4col-......
  • jQuery功能强大的图片查看器插件 viewer
    http://www.htmleaf.com/jQuery/Image-Effects/201509032517.html 如果想知道用户点击的是第几张图片,可使用HTML5的window.postMessage实现通信,修改viewer.js: 然后在html中接收事件: ......
  • python网站创建015:jQuery的标签操作
    当我们找到标签之后,就要学习jQuery对这个标签都能做哪些操作? 1、样式操作:也就是操作标签的css样式添加样式:addClass删除样式:removeClass判断是否有该样式:hasClass有则移除,无则添加:toggleClass<!DOCTYPEhtml><html><head><title>初识:JavaScript</title><meta......
  • python网站创建014:jQuery的引入、选择器和筛选器
    1.下载jQuery之后,那如何使用呢?假如我想操作一个div标签,给这个标签补充文字<!DOCTYPEhtml><html><head><title>初识:JavaScript</title><metacharset="UTF-8"></head><body><!--定义一个无文本的div标签--><div......
  • C++ Qt开发:RadioButton单选框分组组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QRadioButton单选框组件以及与之交互的QButtonGroup类的常用方法及灵活运用。QRadioButton是Qt框架......
  • python网站创建013:jQuery的下载安装
    jQuery:相当于别人做的一个库,模块,里面包含了DOM和BOM所需要的功能,既然有了DOM和BOM那为什么还会有jQuery呢?DOM和BOM是属于比较底层的代码,可以用,但是比较繁琐,所以出现了jQuery,代码更为简洁,之后也建议使用jQuery。jQuery下载:https://jquery.com/ ......
  • jQuery功能强大的图片查看器插件 viewer
    http://www.htmleaf.com/jQuery/Image-Effects/201509032517.html 如果想知道用户点击的是第几张图片,可使用HTML5的window.postMessage实现通信,修改viewer.js: 然后在html中接收事件: ......
  • JQuery基础
    1.简介JQuery能做什么?访问和操作DOM元素控制页面样式对页面事件进行处理扩展新的jQuery插件与Ajax技术完美结合为什么要用JQuery?使用JQuery可以大大的减少JS代码,简化DOM操作JQuery对象与DOM对象通过$(xx)获取到的都是jquery对象。而通过JS的getElementBy...获取到的......