HTML5中修改表单验证默认提示语句

HTML5中针对表单新增的验证属性如required、pattern以及一些特定input类型,当验证不通过时,都有默认的提示语句,但实践中发现并不怎么友好,因此,需要自定义提示语句,使用setCustomValidity()。在此之前,需要介绍一下表单的validityState对象。
HTML5表单新增的属性中有一个validity属性,通过该属性可以获得一个validityState的对象,而validityState对象针对表单的几个错误验证又提供了8个属性:

  • valueMissing
    必填项为空,返回true,否则返回false,配合required属性使用
  • typeMismatch
    判断输入类型是否匹配,不匹配返回true,否则返回false,配合email、number、url等类型使用
  • patternMismatch
    判断正则是否通过,没通过返回true,通过返回false,配合pattern属性使用
  • toolong
    判断当前元素的值的长度是否大最大值,大于返回true,否则返回false,配合maxlength使用,但实际上如果设置maxlength,就无法输入超出长度范围的值
  • rangeUnderflow
    判断当前元素值是否小于min,与min属性配合,不与max比较
  • rangeOverflow
    判断当前元素值是否大于max,与max属性配合,不与min比较
  • stepMismatch
    判断当前元素值是否符合step要求,与step属性配合
  • customError
    使用自定义的验证错误提示信息,配合setCustomValidity()方法使用;
    如果使用了setCustomValidity()方法,customError属性返回true,那么当输入正确时,不能使用上述的任何一种属性验证输入是否正确,所有的验证都返回false,表单的验证逻辑将会出现bug。因此,在自定义错误提示信息时,需要首先使用input.value判断输入是否为空,如果不是空值,调用input.setCustomValidity(“”)将提示信息设为空,从而屏蔽输入正确时出现的验证逻辑错误,之后再设置自定义错误提示语,示例:
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8"/>
  <title> New Document </title>
</head> 
<body>
    <form action="http://1314258.cn">
        <input id="user" type="text" required pattern="^[a-zA-Z0-9]{6,12}$" placeholder="请输入用户名"/>
        <input type="submit" id="btn" value="提交">
    </form>
</body>
<script>
	function checkUser(){
		var user=document.getElementById("user");
		if(user.value){
            user.setCustomValidity("");//现将有输入时的提示设置为空
        }else if(user.validity.valueMissing){
            user.setCustomValidity("用户名不能为空");  
			return false;
        };
        if(user.validity.patternMismatch){ 
            user.setCustomValidity("用户名只能是英文或数字,长度6到12位");
			return false;
        }
	}
	
	var btn=document.getElementById("btn");
	btn.onclick = function(){
		//checkUser();
		if(checkUser()){
			return false;
		}
		return true;
	}
		
	
</script>
</html>

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Ant Design Vue 是一个基于 Vue.js 的组件库,提供了一系列高质量的 UI 组件,其也包含了一个表单验证组件。 如果你想要使用悬浮提示,可以在使用表单验证组件的时候,设置 `trigger` 属性为 `"hover"`: ``` <a-form-item label="用户名" :validate-status="userName.validateStatus" :help="userName.errorMsg" prop="userName"> <a-input v-decorator="[ 'userName', { rules: [ { required: true, message: '请输入用户名' } ], trigger: 'hover' } ]" /> </a-form-item> ``` 这样,当用户将鼠标悬停在输入框上时,就会出现验证提示。 如果你想要在点击输入框时也出现提示,可以将 `trigger` 属性设置为 `"focus"`。 你也可以将 `trigger` 属性设置为一个数组,表示多种触发方式,比如: ``` trigger: ['focus', 'hover'] ``` 这样,无论是点击输入框还是将鼠标悬停在输入框上,都会出现验证提示。 希望这能帮到你! ### 回答2: 在Ant Design Vue的1.7.8版本表单验证提示默认是显示在输入框下方的静态提示信息。如果要改为悬浮提示,则需要进行如下操作: 1. 导入Tooltip组件: 在需要使用悬浮提示的页面或组件,通过`import { Tooltip } from 'ant-design-vue'`语句导入Tooltip组件。 2. 自定义表单验证提示信息: 使用自定义表单验证规则时,可以通过设置`validateStatus`和`help`属性来控制提示信息的显示样式。将原先的静态提示信息替换为Tooltip组件,并将`validateStatus`赋值为验证结果的状态,`help`赋值为验证失败时的提示信息。 3. 配置悬浮提示样式: 在Tooltip组件,通过设置`placement`属性来控制悬浮提示框相对于触发元素的位置,例如设置为top、bottom、left或right。此外,还可以设置`title`属性来自定义显示在悬浮提示的内容,可以是纯文本或其他Vue组件。 4. 添加额外的样式: 如果需要对悬浮提示进行额外的样式调整,可以通过为Tooltip组件添加class或style属性来实现。 以上就是将Ant Design Vue 1.7.8版本的表单验证提示改为悬浮提示的简要步骤。具体实现方式可以根据具体的代码和项目需求进行调整。 ### 回答3: 要将ant-design-vue版本1.7.8表单验证提示改为悬浮提示,可以按照以下步骤进行修改。 首先,需要引入Tooltip(悬浮提示)组件,可以在需要使用表单验证的地方使用Tooltip包裹表单组件。 ```vue <template> <a-form :form="form" ref="formRef" :model="formData"> <a-form-item label="名称" prop="name" :validateStatus="formError.name ? 'error' : ''" :help="formError.name"> <a-tooltip v-if="formError.name" placement="topLeft" :title="formError.name"> <a-input v-decorator="['name']"></a-input> </a-tooltip> <a-input v-decorator="['name']"></a-input> </a-form-item> <!-- 其他表单组件 --> </a-form> </template> ``` 在上面的代码,我们将a-tooltip组件包裹了需要验证的a-input组件,当验证未通过时,会显示悬浮提示。 接下来,需要定义formError对象来保存表单验证的错误信息,在进行表单验证时,根据错误信息动态更新formError对象。 ```vue <script> export default { data() { return { form: {}, formData: { name: '' // 其他表单字段 }, formError: { name: '' // 其他表单字段的错误信息 } } }, methods: { onSubmit() { this.$refs.formRef.validate((valid) => { if (valid) { // 表单验证通过,提交表单 } else { // 表单验证未通过,更新错误信息 this.formError = this.getFormError() } }) }, getFormError() { // 根据表单验证的错误信息返回错误对象 let errorObj = {} // 遍历获取到的错误信息,将错误信息存储在errorObj return errorObj } } } </script> ``` 在上述代码,我们定义了onSubmit方法来处理表单的提交事件。在提交时,会使用validate方法来对表单进行验证。如果验证未通过,会调用getFormError方法来获取错误信息,并将错误信息存储在formError对象。 最后,在样式文件添加以下样式,用于自定义悬浮提示的样式。 ```css .ant-tooltip { background-color: #fff; border: 1px solid #e8e8e8; } .ant-tooltip-inner { color: #000; } ``` 通过以上步骤,我们就可以将ant-design-vue版本1.7.8表单验证提示改为悬浮提示了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暗恋花香

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值