checkbox的value和checked属性详解

2023-11-07

一 、checked属性

checked属性代表的是当前checkbox是否被选中,如果选中返回true,未选中返回false。和value值无关。

<p><input type="checkbox" name="vehicle" checked/> I have a car</p>

document.getElementById("checkbox1").checked

知识点:

  1. checked只代表页面刷新时,checkbox处于选中状态。checked的属性返回true;
    此时,点击checkbox使其处于非选中状态,html代码没有变化(checked依然源码上)。但checked的属性返回false;

  2. html中出现checked字样,代表刷后新选,和checked=“任意值”无关。哪怕checked=“false”,刷新时,checkbox仍然是选中状态。可以理解为checked之后的属性值都是没意义的。

结论:

  1. html中checked意味着页面加载时,让该checkbox元素的checked属性为true,页面显示选中状态。
  2. 在提交表单时判断表单是否选中的标准是document.getElementById(“checkbox1”).checked返回true还是false。和html页面内容无关。

二 、value属性

<p><input type="checkbox" name="vehicle" id="checkbox1" /> I have a car</p>

alert(document.getElementById("checkbox1").value);

value的属性代表checkbox提交给表单的值。

  1. value如果没有设置,则默认value的值是“on”。如果设置,自然value就是设置的值。
  2. value的值和表单是否选中无关。 无论表单是否选中,checkbox的值都是一样的。
    ※这个点是包括我在内很多人都有误解。

三、表单提交对checkbox处理

请问下面这个表单提交后,提交的name和value是什么呢?

<p><input type="checkbox" name="vehicle" id="checkbox1" checked/> I have a car</p>

答案是不确定

解释:

要点1: 当checkbox处于选中状态时,该checkbox的数据才会被提交。否则,数据不提交。
什么叫做选中状态?
唯一准确的答案是document.getElementById(“checkbox1”).checked返回true;
我已经解释过,html的checked只代表刷新后的状态,不代表提交时的状态。
我如果通过js把该属性设置成false,有的浏览器看到的还是打对号选中的状态。实际checked属性是false。

要点2: 表单提交的value是value属性的值。默认是“on”,否则是设置值。无论是否勾选都是一个值。

总结:

上面的表单,如果处于选中状态,提交给server的name-value是"vehicle=on".
如果是非选中状态,提交的是空,也就是不提交该数据。

四、实际工作中遇到的问题:

checkbox未选中状态,表单的数据没有提交到后台。
预期checkbox选中提交1,未选中提交0。但发现数据库没有更新,通过以上明白了为什么。

解决方法:

在表单提交前,扫描所有的checkbox状态,如果checkbox是checked=true。
把value设置为1.。如果checkbox=false,把value设置为0.

具体代码,大家可以百度,有很多人遇到类似问题。解决方法可以有很多种,重点是理解了chebox的原理是什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

checkbox的value和checked属性详解 的相关文章

随机推荐

  • ubuntu的终端命令提示符太长的修改方法总结

    2019独角兽企业重金招聘Python工程师标准 gt gt gt ubuntu的终端命令提示符太长 主要原因 1 计算机名太长 2 多层直接显示出来 针对计算机名太长的处理 如 下面的计算机名提示太长了 ningcaichen virtu
  • Java的byte类型详解

    前言 byte这个单词是Java八种基本数据类型之一字节的关键字 在计算机存储中以字节为单位 8位比特 bit 组成一个字节 为什么弄清楚byte这么重要呢 因为智能硬件的数据传输大部分协议都是按字节一位一位来解析的 对于字节的运算十分频繁
  • 备战蓝桥杯-二分查找(附多道题解和详细分析)

    二分典型例题 备战蓝桥杯系列全部文章 分享看过的高赞的文章 有助于你对于二分的理解 巨人的肩膀 知乎 二分的解释 LeetCode二分的解释 给定一个按照升序排列的长度为 nn 的整数数组 以及 qq 个查询 对于每个查询 返回一个元素 k
  • 直播邀约|8个数字了解2023腾讯全球数字生态大会

    2023腾讯数字生态大会 一起来看看吧
  • ❤ npm install 时报Error: spawn git ENOENT

    npm install 时报Error spawn git ENOENT 原因 主要是因为由于 git 的环境变量未设置导致 所以安装一下git 的环境变量就O了 步骤如下 设置 gt gt 系统 gt gt 高级系统设置 gt gt 高级
  • linux系统下修改文件夹目录权限

    文件夹权限问题 Linux Fedora Ubuntu修改文件 文件夹权限的方法差不多 很多人开始接触Linux时都很头痛Linux的文件权限问题 这里告诉大家如何修改Linux文件 文件夹权限 以主文件夹下的一个名为cc的文件夹为例 下面
  • nodejs第五天 npm yarn pnpm 包管理器

    文章目录 npm package json 安装包 全局安装 配置镜像 yarn 安装使用 镜像配置 pnpm 使用 镜像 npm node中的包管理器叫做npm node package manage 我们可以将自己开发的包上传到npm中
  • 数据结构--循环队列的c语言实现(超详细注释/实验报告)

    数据结构 循环队列的c语言实现 超详细注释 实验报告 知识小回顾 队列 Queue 是另一种限定性的线性表 它只允许再表的一端插入元素 而再另一端删除元素 多以队列具有先进先出 First In First Out FIFO 的特性 这与我
  • dmmbus地址_busdmm.us服务器iP

    2019 10 09 2020 12 19 173 252 100 21 2019 10 09 2020 12 19 31 13 74 1 2020 09 05 2020 12 19 104 244 43 208 2020 09 05 20
  • Mac系统创建python3.7虚拟环境

    mac系统python3 7安装虚拟环境 什么叫虚拟环境呢 python特有的一种软件环境 创建多个python环境 各个环境之间完全隔离 互不影响 它可以用来解决Python项目开发和运行过程中的依赖项和版本问题 而不必和其他项目的Pyt
  • dfs找不到网络路径 windows_DFS 复制服务已启动位于本地路径 C:\WINDOWS\SYSVOL\domain 上的 SYSVOL,并正在...

    公司新建域控由于分公司需要辅助域控 就新建了一台额外域控 但是该域控建好后发现组策略不生效 检查sysvol文件夹一片空白 肯定是没有从主域控复制过来 使用dcdiag检查 有下面报错 目录服务器诊断 正在执行初始化设置 正在尝试查找主服务
  • Android -- Activity and Intent

    Android Activity and Intent Activity Activity Lifecycle Intent 显式Intent 隐式Intent Intent属性 Intent Examples Activity activ
  • OpenCV计算机视觉学习(3)——图像灰度线性变换与非线性变换(对数变换,伽马变换)

    人工智能学习离不开实践的验证 推荐大家可以多在FlyAI AI竞赛服务平台多参加训练和竞赛 以此来提升自己的能力 FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台 每周免费提供项目开源算法样例 支持算法能力变现以及快
  • 阿里云 日志服务接入

    目前项目中都有用到日志记录 一般会存到本地 但是时间长了 去删除也是很麻烦的 阿里云日志服务 是个不错的选择 可分为两种 自动采集和自动上传到云 1 写文件到本地 然后配置 让阿里云自动采集 LogHub 支持客户端 网页 协议 SDK A
  • JVM垃圾收集器总结

    JVM的垃圾收集算法 最终是要由垃圾收集器实现的 不同厂商 不同版本的虚拟机的垃圾收集器实现差别很大 本文只介绍HotSpot中的垃圾收集器 包括 串行收集器 并行收集器 新生代Parallel Scavenge收集器 CMS G1 一 整
  • FLOYD算法

    1 定义概览 Floyd Warshall算法 Floyd Warshall algorithm 是解决任意两点间的最短路径的一种算法 可以正确处理有向图或负权的最短路径问题 同时也被用于计算有向图的传递闭包 Floyd Warshall算
  • 开启IIS,“出现错误,并非所有功能被成功更改”

    环境 Windows7 Ultimate 事件 测试需要 要在自己的计算机上搭建临时IIS 在打开或关闭windows功能里 开启了相关组件及功能 确定应用后提示 出现错误 并非所有功能被成功更改 解决 网上查阅相关资料后 众说纷纭 后来在
  • Java将一段逗号分割的字符串转换成一个数组(亲测)

    String 类 String 类代表字符串 Java 程序中的所有字符串字面值都作为此类的实例实现 字符串是常量 它们的值在创建之后不能更改 字符串缓冲区支持可变的字符串 因为 String 对象是不可变的 所以 可以共享 String
  • 关于命令行中不能运行pip程序和python程序

    大多数都是没有将pip程序和python程序下载的路径添加到环境变量 1 添加pip的环境变量 2 添加pythn的环境变量 小心不要添加成了python快捷方式的环境变量 我一开始就添加的是python快捷方式的变量 结果一直以为是添加的
  • checkbox的value和checked属性详解

    一 checked属性 checked属性代表的是当前checkbox是否被选中 如果选中返回true 未选中返回false 和value值无关 p p