点我去Gitee
点我去Gitee

表单必填 最长字数 不允许空格 保证唯一 react

1.必填

页面.js(核心代码 非完全)

//引入检测方法
import validate from '../utils/validate.js'//方法:验证填写信息
//填写规则
const rules = {
  name: {
    rule: /\S/,
    info: "*机床名字必填"
  },
  ip: {
    rule: /\S/,
    info: "*机床ip必填"
  },
  equipmentType: {
    rule: /\S/,
    info: "*设备类型必选"
  }
}
//构造函数
 constructor(props) {
    super(props)
    this.state = {
      message: { // 填写的数据
        boxId: '',
        equipmentType: '',
        productModel: '',
        name: '',
        ip: '',
        line: '',
      },
      nameBool: true,//名字填写是都符合规范
      ipBool: true,//ip填写是都符合规范
      equipmentTypeBool: true//设备类型填写是都符合规范
    }
  }

 // 验证机床名字、IP、设备类型必填
    const message = this.state.message
    if (!validate.validateNull('equipmentType', rules.equipmentType.rule, message)) {
      this.setState({
        equipmentTypeBool: false
      })
      return
    }
    this.setState({
      equipmentTypeBool: true
    })

验证方法页面.js


//判断验证是否符合要求(目前时为空) 验证message的key值是否符合rule规范  rule.test(message[key])
function validateNull(key, rule, message) {
	if (!rule.test(message[key])) {
		return false
	}
	return true
}

2.保证唯一

// 验证唯一  list的key值是否包含val  list[key]包含val?
function validateOnly(key, val, text, list) {
	for (let i = 0; i < list.length; i++) {
		if (list[i][key] === val) {
			plus.nativeUI.toast(text + '已存在', {
				background: '#ffa38c',
			})

			return false
		}
	}
	return true
}

3.最长20字符

<input className="input" type="text" placeholder="请输入产品型号" name="productModel"
              value={this.state.message.productModel || ''} onChange={this.handleChange} maxLength="20" />

4.去掉填写的空格

  constructor(props) {
    super(props)
    this.state = {
      message: { // 填写的数据
        boxId: '',
        equipmentType: '',
        productModel: '',
        name: '',
        ip: '',
        line: '',
      },
      nameBool: true,//名字填写是都符合规范
      ipBool: true,//ip填写是都符合规范
      equipmentTypeBool: true//设备类型填写是都符合规范
    }
  }
// 获取表单填写内容
  handleChange = (e) => {
    this.setState(preState => {
      return Object.assign({}, preState, {
        message: Object.assign({}, preState.message, {
          [e.target.name]: e.target.value.replace(/\s+/g, '')
        })
      })
    })
  }
posted @ 2021-10-16 17:16  biuo  阅读(103)  评论(0编辑  收藏  举报