怎么自己写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表单验证,要详细代码,求救!(带星号的是必填项)_百度知 ...
<input type=”text” id=”telephone” > <input type=“button” onclick=“functioncheck1”value=“检测”> 如果要检测它是否符合标准,那我就会在页面中导入js包然后写一个 <script> 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提交后进行了视图渲染,...
怎么控制<form>表单标记的宽和高
form表单需要设置宽和高吗?它只是一个提交数据的一个组件!是个隐藏的东西我们都看不到的!是不是设置table或是div那些样式啊?
如何在form中调用js表单验证
fname"><input type="submit" value="Submit"></form> js验证函数:function validateForm(){var x=document.forms["myForm"]["fname"].value;if (x==null || x=="") { alert("First name must be filled out"); return false; }} 当提交表单的时候就会触发验证,运行结果:...