2017-09-20

<FormItem {...formItemLayout}
label="主机名"
hasFeedback>
{getFieldDecorator('hostName', {
rules: [{
required: true, max: 20, message: '请输入主机名(最多20字符)!'
}],
initialValue: this.isAdd() ? "" : this.hostState.hosts.hostName
})(
<Input/>
)}
</FormItem>

2017-03-31 最近看了and的文档发现个小东西,以前做的时候关于非空的时候空格需要自己写函数判断,今天看文档发现了一个属性,太好用了!

代码展示:

 required: true,whitespace:true,两个属性一起设置就能满足非空空格通不过的问题了
{
type: 'text',
item: {label: '相对人名称'},
name: 'xdr',
options: {initialValue: initialValue.xdr,
rules: [{
required: true,whitespace:true, message: '相对人名称不能为空'
}],
}
}

 需求是 账号名可以是手机号也可以是邮箱 要做手机号和邮箱的验证,官网的那个验证规则不匹配  怎么自定义验证规则? 

一:组件部分

<Form horizontal>
<Row gutter={24}>
<Col sm={12}>
<FormItem {...formItemLayout} label="账号名" hasFeedback>
{getFieldDecorator('account', {
rules: [{
required: true, message: '账号名不能为空',
},{
validator: this.checkAccount,
}],
initialValue: ''
})(
<Input placeholder="手机号或邮箱号"/>
)}
</FormItem> <FormItem {...formItemLayout} label="用户密码">
{getFieldDecorator('password', {
rules: [{
required: true, message: '密码不能为空',
}],
})(
<Input type="password"/>
)}
</FormItem>
</Col>
</Row> <FormItem wrapperCol={{span: 18, offset: 10}}>
<Button type="primary" onClick={this.handleSubmit.bind(this)}>确定</Button>
</FormItem>
</Form>

二:自定义验证规则部分

//

this.checkAccount
checkAccount(rule, value, callback) {
var re = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/; if (value.length==11 || re.test(value)) {
callback();
} else {
callback('账号名为邮箱或手机号');
}
};

三 .响应事件函数调用规则 :

 handleSubmit(e) {
e.preventDefault();
//const values = this.props.form.getFieldsValue();
console.log('收到表单值:', this.props.form.getFieldsValue());
     //重要
this.props.form.validateFieldsAndScroll((errors, values) => {
console.log(values);
if (!!errors) {
console.log('Errors in form!!!');
return;
}
// values.dfbmId = this.props.signUser.dfbmId;
//values.orgId = this.props.signUser.orgId;
values.orgId = this.props.signUser.orgId;
console.log("values"+values);
this.props.reportingXzcfService.chuFaSave(values);
console.log('Submit!!!');
console.log(values);
});
}

js怎么判断字符串是不是全是空格

keyWords.value.trim().length === 0

input.value.length>0 && input.value.trim().length > 0 //可以使用
function isNull(str) {
if (str == "") return true;
var regu = "^[ ]+$";
var re = new RegExp(regu);
return re.test(str);
} //校验非空
checkAccount(rule, value, callback) {
if (!isNull(value)) {
callback();
} else {
callback('用户名不能为空');
}
};
//校验手机号码
checkPhone(rule, value, callback) {
if(!(/^1(3|4|5|7|8)\d{9}$/.test(value))){
callback("手机号码有误,请重填");
}else{
callback();
}
}; //校验邮箱
checkEmail(rule, value, callback) {
var re = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;
if(re.test(value)){
callback();
}else{
callback("邮箱号有误,请重填");
}
};

for-of 循环

与 与 ES6  迭代器协议协同使用
ECMAScript 6 中定义了一个迭代器协议,我们在“深入浅出 ES6(二):迭代器和
for-of 循环”中已经详细解析过。当你迭代 Maps(ES6 标准库中新加入的一种对象)后,
你可以得到一系列形如 [key, value] 的键值对,我们可将这些键值对解构,更轻松地访
问键和值:
var map = new Map();
map.set(window, "the global");
map.set(document, "the document");
for (var [key, value] of map) {
console.log(key + " is " + value);
}
// "[object Window] is the global"
// "[object HTMLDocument] is the document"
只遍历键:
for (var [key] of map) {
// ...
}
或只遍历值:
45
深入浅出 ES6(六):解构 Destructuring
for (var [,value] of map) {
// ...
}

ant design 自定义表单验证大全的更多相关文章

  1. 实现Ant Design 自定义表单组件

    Ant Design 组件提供了Input,InputNumber,Radio,Select,uplod等表单组件,但实际开发中这是不能满足需求,同时我们希望可以继续使用Form提供的验证和提示等方法 ...

  2. layui 自定义表单验证的几个实例

    *注:使用本方法请先引入layui依赖的layu.js和layui.css 1.html <input type="text" name="costbudget&q ...

  3. Angular5+ 自定义表单验证器

    Angular5+ 自定义表单验证器 Custom Validators 标签(空格分隔): Angular 首先阐述一下遇到的问题: 怎样实现"再次输入密码"的验证(两个cont ...

  4. Angular自定义表单验证

    前端表单验证 为年龄输入框添加了两个验证,并分情况填写了提示语 <form nz-form [formGroup]="validateForm"> <nz-for ...

  5. jquery.validate.js使用之自定义表单验证规则

    jquery.validate.js使用之自定义表单验证规则,下面列出了一些常用的验证法规则 jquery.validate.js演示查看 jquery validate强大的jquery表单验证插件 ...

  6. angular4 自定义表单验证Validator

    表单的验证条件有时候满足不了需求就可以自定义验证 唯一要求返回是ValidatorFn export interface ValidatorFn{ (c:AbstractControl):Valida ...

  7. element自定义表单验证

    element-ui框架下修改密码弹窗进行表单验证. 除了基础校验,密码不为空,长度不小于6字符,需求中还需校验密码由数字和字母组合. 处理代码如下: <el-dialog :visible.s ...

  8. ElementUI使用问题记录:设置路由+iconfont图标+自定义表单验证

    一.关于导航怎么设置路由 1.在el-menu这个标签的属性中添加 router ,官方文档的解释是:启用vue-router 这种模式 2.在el-menu-item标签中的index属性直接书写路 ...

  9. 自定义表单验证--jquery validator addMethod的使用

    原文地址:jquery validator addMethod 方法的使用作者:蜡笔小玄 jQuery.validate是一款非常不错的表单验证工具,简单易上手,而且能达到很好的体验效果,虽然说在项目 ...

随机推荐

  1. flappy pig小游戏源码分析(3)——解剖util

    这一节我们继续高歌猛进,如果对源码中有无论无何都理解不通的问题,欢迎和我交流,让我也学习一下,我的qq是372402487. 还是按照惯例看看我们的目录结构. 我们在前两节中已经分析了game.js, ...

  2. CUDA网格限制

    如图

  3. HDU-4679 Terrorist’s destroy 树形DP,维护

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4679 题意:给一颗树,每个边有一个权值,要你去掉一条边权值w剩下的两颗子树中分别的最长链a,b,使得w ...

  4. Integer的缓存机制

    Java api 中为了提高效率,减少资源的浪费,对内部的Integer类进行了缓存的优化,通俗的说就是把-127至128这个范围内的数提前加载到内存,当我们需要的时候,如果正好在这个范围之内,就会直 ...

  5. 移动端rem布局和百分比栅格化布局

    移动端的rem: 使用方法: 设置html的font-size,根据浏览器分辨率缩放 设置根元素font-size为100px这样好用的值,不要设为10px这样的: 然后获取浏览器的分辨率,也就是视口 ...

  6. Oracle 监听器无法启动(TNS-12555,TNS-12560,TNS-00525)

    启动监听器无法打开,报错! [oracle@localhost ~]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production ...

  7. 剑指OFFER之丑数(九度OJ1214)

    题目描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7.习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 输入: 输 ...

  8. 邮件Mail

    邮件开发准备: 准备工作, 环境搭建: 1. 本地搭建一个邮件服务器 -à 易邮服务器,eyoumailserversetup.exe 2. 新建邮箱账号 张三给李四发邮件. 步骤1: 新建域名: 工 ...

  9. 【转】安装Ubuntu 15.10后要做的事

    Ubuntu 15.10发布了,带来了很多新特性,同样也依然带着很多不习惯的东西,所以装完系统后还要进行一系列的优化. 1.删除libreoffice libreoffice虽然是开源的,但是Java ...

  10. [Javascript + lodash] sortBy and sortedIndex

    sortBy: var collection = ['John', 'Petteri', 'Antti', 'Joonas', 'Zhentian']; var sorted = _.sortBy(c ...