栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

标签属性disabled selected checked等布尔类型赋值不生效?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

标签属性disabled selected checked等布尔类型赋值不生效?

原生html

设置了false实际是true

    
      
      
      
      
    

以上的代码实际上select默认选中4

其实无论你让selected=0 selected=false selected=none 等等,这里都被认为是设置为true
因为在原生的html中,所有属性的赋值其实都是一个字符串,对布尔属性赋值字符串,会被强制转化为布尔值,所以"false" =>true “0” => true …

所以从某种意义上,我们只有利用js或者jquery对其进行赋予布尔值
这样被默认选中的是第4个

 

 var option4 = document.getElementById("option4")
 option4.selected = true
react中布尔值属性只能设置为布尔值

设置false被认为无效,默认选择3

      

设置undefined实际上就是false,最终默认选择3

      

当然也可以设置表达式来判断,默认选择4

import React, { useState } from "react";
import { Link } from "react-router-dom";
const Login: React.FC = () => {
  const [options, setOptions] = useState([1, 2, 3, 4])
  return (
    
Home { options.map((item) => { return }) }
); } export default Login;

但是这样可能会报一个警告 react-dom.development.js:86 Warning: Use the defaultValue or value props on instead of setting selected on .
意思就是让你直接在select标签设置value或者defaultValue而不是给option设置selected

这样默认选中的就是2

import React, { useState } from "react";
import { Link } from "react-router-dom";
const Login: React.FC = () => {
  const [options, setOptions] = useState([1, 2, 3, 4])
  return (
    
Home 2}> { options.map((item) => { return }) }
); } export default Login;
react中其它布尔属性是否与selected的表现一致

只有第4个input被禁用

import React, { useState } from "react";
import { Link } from "react-router-dom";
const Login: React.FC = () => {
  const [options, setOptions] = useState([1, 2, 3, 4])
  return (
    
Home { options.map((item) => { return item} disabled={item === 4} /> }) }
); } export default Login;

只有第4个checkbox被选中

import React, { useState } from "react";
import { Link } from "react-router-dom";
const Login: React.FC = () => {
  const [options, setOptions] = useState([1, 2, 3, 4])
  return (
    
Home { options.map((item) => { return item} checked={item === 4} /> }) }
); } export default Login;

所有的input都不是read模式,可以正常输入

import React, { useState } from "react";
import { Link } from "react-router-dom";
const Login: React.FC = () => {
  const [options, setOptions] = useState([1, 2, 3, 4])
  return (
    
Home { options.map((item) => { return item} readOnly={false} /> }) }
); } export default Login;

经过多种布尔值的测试,react中布尔值属性表现保持一致

vue中设置布尔属性

单独设置为false,其实为true。实际上默认选中的是3

 

如果通过data属性的方式,可以实现false的传值,默认选中的是3



export default class Home extends Vue {
  selected1 = false
}

当然判断式也是可以的,一般选择===的方式判断,默认选中第2个


export default class Home extends Vue {
  options = [1, 2, 3, 4]
}

vue其它的布尔值属性与selected一致吗?

只有第二个input被禁用了


export default class Home extends Vue {
	options = [1, 2, 3, 4]
}

全部false生效 都没被禁用

    

全部true生效 都被禁用

    

checked disabled readonly 基本所有的布尔类型表现都是如此

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995284.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号