问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么自己写form表单验证自定义规则

发布网友 发布时间:2022-04-23 08:45

我来回答

1个回答

热心网友 时间:2022-04-19 07:01

实现表单自定义验证消息,实际上很简单。大体思路为:
1、首先我们要设置表单的验证规则
2、然后根据表单的验证规则定义要显示验证消息,
3、最后通过JavaScript 和CSS相结合先将所有预定义的验证消息隐藏掉,然后再根据表单中的输入是否符合验证规则来控制验证消息的显隐状态。
下面我们就来通过一个具体的示例进行讲解,你可以将这个示例直接放在浏览器中运行查看效果,但是要注意代码中引用了第三方类库jQuery,运行时你要自己设置一下:
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Forms: 验证提示</title>
// 设置一些必要的样式,如验证消息的文字样式和控制验证消息显隐的样式
<style>
input:valid {
background: #fff;
}

input:invalid {
background: #fcc;
color: #333;
}

.validation-messages {
margin-bottom:15px;
}

.validation-messages span {
font-size:0.8em;
background-color:#eee;
padding:6px;
border:1px solid #ccc;
border-radius:10px;
color:#666;
}
//所有class属性为hide的元素都会被隐藏
.hide {
display:none;
}
</style>
</head>
<body>
<article>
<h1>Forms<span> - 验证提示</span></h1>
</article>
<div id="result-stub" class="well hidden">
<form id="change-email-form" name="change-email-form">
<fieldset>
<h4>修改邮箱地址</h4>
//设置表单应该遵循的验证规则。
//pattern 属性:规定用于验证输入字段的模式。
//maxlength 属性:规定输入字段的最大长度,以字符个数计。
//required属性:规定该input元素为必须的元素。
<label>用户名:</label>
<input type="text" name="username"
id="username" pattern="[a-zA-Z ]{5,}"
maxlength="30" required />
//设置表单的验证消息,并结合class属性样式将其隐藏起来
<div>
//这里的data-rule的属性值是HTML5表单中内置的验证规则中的一种
<span data-rule="valueMissing"
class="hide">用户名不能为空.</span>
<span data-rule="patternMismatch"
class="hide">必须是字母字符(长度应为5~30个字符).</span>
</div>

<label>邮箱地址:</label>
//设置表单应该遵循的验证规则。
<input type="email" name="email" id="email"
title="Email address is required" required />
//设置表单的验证消息,并结合class属性样式将其隐藏起来
<div>
<span data-rule="valueMissing">
邮箱地址不能为空.</span>
<span data-rule="typeMismatch">
邮箱格式不正确.</span>
</div>
<hr />
//设置两个按钮,作用分别是“清空表单内容和对表单中的内容进行验证

<button type="submit" id="submit"
name="submit">修改</button>

<button type="button" id="checkValidation"
name="checkValidation"
class="btn">验证</button>
</fieldset>
</form>
</div>

<script>
window.onload= function() {
//---
// 创建一个验证规则容器。
var ruleNames = [];

// 填充验证规则容器.
// 寻找所有具有验证规则的元素,然后将该元素的data-rule属性值添加到验证规则数组中去。
$("[data-rule]").each(function(i, element) {
var ruleName = element.getAttribute('data-rule');
if ($.inArray(ruleName, ruleNames) < 0) {
ruleNames.push(ruleName);
}
});

var
// 首先确定用户界面隐藏了所有验证消息。
// 然后在选定的表单上运行验证规则。
validate = function() {
$(".validation-messages span")
.addClass('hide');

document.getElementById('change-email-form')
.checkValidity();
},

// 查询每个输入的元素,以确定哪个元素无效。
// 一旦检测到无效元素,就遍历验证规则,找到无效的原因,然后通过消息对用户进行提示

validationFail = function(e) {
var
element = e.srcElement,
validity = element.validity;

if (!validity.valid) {
ruleNames.forEach(function(ruleName) {

checkRule(validity,
ruleName,
element);
});

e.preventDefault();
}
},

// 使用 input 元素 的ValidityState 对象的实例来运行验证规则。
//如果这个验证规则返回ture,就表示无法通过验证,在表单中就会有相应的提示信息。
checkRule = function(state, ruleName, ele) {
if (state[ruleName]) {
$(ele).next()
.find('[data-rule="'
+ ruleName + '"]')
.removeClass('hide');
}
};

// 所有验证事件处理程序是附加在input元素上的而不是button元素
$(':input:not(:button)').each(function() {
this.oninvalid = validationFail;
this.onblur = validate;
});

$('#checkValidation').click(validate);
}
</script>
<script src="../js/jquery.js"></script>
</body>
</html>
怎么用JS做form表单验证,要详细代码,求救!(带星号的是必填项)_百度知 ...

&lt;input type=”text” id=”telephone” &gt; &lt;input type=“button” onclick=“functioncheck1”value=“检测”&gt; 如果要检测它是否符合标准,那我就会在页面中导入js包然后写一个 &lt;script&gt; functioncheck1(){ varreg1 = /^1(5|3|8)\d{9}$/;varstr1 = document.getElementById("telephone"...

vue中如何使用elementui自定义校验规则错误提示?

在 Element UI 中进行自定义校验规则和错误提示操作时,需先在 el-form-item 中指定 prop 属性和 rules 属性。prop 属性用来标记组件的特定属性,而 rules 属性则可以指定校验规则及其对应的错误提示信息。举例来说,假设我们有一个密码输入框,我们想设置密码为空时不通过校验,并提示“密码不能为空”...

如何给动态添加的form表单控件添加表单验证

解决的办法为:在添加完一个表单控件以后,重新给表单元素添加验证规则,代码如下:("#elementId").append("拼写表单控件");("#formId").validate();这样可以解决给动态添加的表单控件添加验证的问题。

怎么使用 Elementor form 表单工具中的文本仅支持输入数字输入且只有...

您可以使用Elementor Form表单工具中的文本字段,然后设置验证选项,仅允许输入数字且只有十位数。具体步骤如下:1. 在Elementor Form表单工具中,点击“添加字段”,选择“文本”字段。2. 在“文本”字段的设置面板中,找到“验证”选项,点击“数字”,然后在“最大长度”中输入“10”。

jquery验证form表单,没有通过验证也会提交,怎么写,该如何写?

第一种: 用js提交, submit-button 第二种。你检查下。("#txtName").blur(function(){ --这句是☞文本框失去焦点后触发的事件对吧。onsubmit="return blur()" --☞方法 改为 function blur(){ 然后把校验的代码复制进去即可 。} 则.$("#txtName").blur(function(){ blur()...

手写el-form表单组件

el-form组件采用此库进行表单验证,确保数据输入的准确性与合法性。本文旨在分享el-form表单组件的使用与组件通讯机制的理解,帮助开发者在项目中构建高效、可维护的表单组件。文章由星野撰写,来源于“前端有道”,内容版权归作者所有,任何商业或非商业用途需获得作者授权。

JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整 ...

1.先说表单提交前验证:后台经常用到(这里是提交后统一验证,及时验证请参考我另一篇文章http://blog.csdn.net/jianzhonghao/article/details/52503431)1.1通过submit按钮提交后会根据form的属性action=“路径”来跳转到相应的路径,这时,给form添加一个onsubmit=”returncheck()”属性,check()使我们...

django表单验证如何弹出错误信息(djangoform表单验证)

form里这两行有问题,这行如果你想重新赋值的话应该给一个queryset,而不是列表。如果你想测试一下的话可以先把这行注释掉,然后你在提交看看表单验证是否能通过。如果通过了那确定问题就是这里了。我想我应该不会错。。。django表单提交后如何用弹框提示成功?从代码中看到post提交后进行了视图渲染,...

怎么控制&lt;form&gt;表单标记的宽和高

form表单需要设置宽和高吗?它只是一个提交数据的一个组件!是个隐藏的东西我们都看不到的!是不是设置table或是div那些样式啊?

如何在form中调用js表单验证

fname"&gt;&lt;input type="submit" value="Submit"&gt;&lt;/form&gt; js验证函数:function validateForm(){var x=document.forms["myForm"]["fname"].value;if (x==null || x=="") { alert("First name must be filled out"); return false; }} 当提交表单的时候就会触发验证,运行结果:...

form表单怎么用 flowable自定义表单 html提交form表单post 自定义 表单 自定义表单开发 activiti自定义表单 自定义表单布局 自定义表单开源 自定义表单 前端
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
网店运营一个月多少工资?需要具备什么能力? 冀教版七年级上英语单词表 冀教版初一英语单词表 女方提出离婚孩子应归谁抚养 小米相机的移轴是什么 小米手机相机移轴是什么意思 - 知百科 美容导入仪真有用吗 佛州是哪个省 DSP新人,写好了一段c++代码,怎么通过ccs3.3软件导入到dsp中_百度... 【环境配置】高版本的CCS如何运行仿真及如何导入3.3版本之前的工程文件... 如何添加自定义表单求解 asp如何获取自定义的表单属性值? 表单自定义怎么做啊? 能够定义在form 表单中的属性 表单自定义方法是什么 把vf表单自定义属性的类型(默认逻辑否)改为空字符串 VFP表单属性如何定义 ? 鞠朝哲 什么是流程自定义和表单自定义? VFP表单自定义属性 VFP问题 用户可以给表单添加自定义属性和方法程序??? 如何在visualfoxpro6.0的表单中自定义表单属性和方法? 如何在VF中添加自定义属性??? 努比亚z5s mini 有老人模式吗,手机我是买来给老爸用的。 现在的手机越来越小巧别致了,很多都是触摸式的,这让老年人使用很不方便,有适合老年人用的老年机型吗? 适合老年人用的智能手机有哪些? 适合老年人的手机有什么型号? 迷你手机什么牌子好 星维A7迷你老人机的puk密码 求一款适合老年人的智能手机,要65岁的老人也会用的。 Mini老人手机怎么改中文 自定义表单 如何开发自定义表单? 管理平台的自定义表单,自定义流程是什么意思? 和客CRM的表单自定义怎么设置? 自定义表单怎么确定唯一性呢 jquery 获取form里自定义属性的值 html表单的name可以自己定义吗?下面这样定义对吗?应该怎么写?谢谢... 慢性盆腔炎吃什么中药能根治? 慢性盆腔炎的中医治疗方法 慢性盆腔炎喝中药怎么调理? 慢性盆腔炎的中医治疗 慢性盆腔炎中药能治好么? 中药什么治疗盆腔炎 盆腔炎可以喝中药治疗 慢性盆腔炎中药治疗效果怎样 有什么好的中药方治疗慢性盆腔炎的? 慢性盆腔炎喝中草药能治愈吗 慢性盆腔炎的中医治疗? 吃什么中药治疗盆腔炎效果好? 慢性盆腔炎可以吃什么中药