Layui表单验证及提交

5 篇文章 0 订阅
1 篇文章 0 订阅

查了很多人写的,真是试了各种方法,最后在这个帖子里看到的方法起了作用。
看代码:

  1. html页面
    导入layui相关包后,关键代码是“ 保存”按钮中的 lay-filter=“saveArticle” lay-submit (注,这一行的双引号不对,需要改成英文的)
	<!DOCTYPE html>
	<html xmlns:th="http://www.thymeleaf.org"
	      xmlns:mo="https://gitee.com/aun/Timo">
	<head>
	    <link rel="stylesheet" href="/css/plugins/font-awesome-4.7.0/css/font-awesome.min.css"  media="all">
   	    <link rel="stylesheet" href="/lib/layui-v2.3.0/css/layui.css"  media="all">
	</head>
	<body>
	<div class="layui-form timo-compile">
	    <form th:action="@{/company/testApplication/save}" class="layui-form">			
	        <table style="border:1px;">	        	
	        	<tr>
	        		<td>
	        			<label class="layui-form-label-company required">姓名</label>
	        		</td>
	        		<td>
						<input class="layui-input" type="text" name="title"  placeholder="请输入姓名" th:value="${personInformation?.title}">
	        		</td>
	        		<td>
						<label class="layui-form-label-company required">证件号码</label>
	        		</td>
	        		<td>
						<input lay-verify="required|identity" class="layui-input" type="text" id="idNumber" name="idNumber"  placeholder="请输入证件号码" th:value="${personInformation?.idNumber}">
	        		</td>
	        	</tr>			
				<tr>
					<td>
						<label class="layui-form-label-company required">培训情况</label>
					</td>
					<td  colspan="3">
						<div class="layui-input-block" style="margin-left: 0px;">
			                <textarea placeholder="请输入内容" class="layui-textarea" name="training"  id="training" th:utext="${personInformation?.training}"></textarea>
			            </div>
					</td>
				</tr>
				<tr>
					<td>
						<label class="layui-form-label-company required">管理经历</label>
					</td>
					<td  colspan="3">
						<div class="layui-input-block" style="margin-left: 0px;">
			                <textarea placeholder="请输入内容" class="layui-textarea" id="management" name="management">[[${personInformation?.management}]]</textarea>
			            </div>
					</td>
				</tr>
					        
	        </table>
			<div class="layui-form-item timo-finally">
	            <button class="layui-btn ajax-submit"  lay-filter="saveArticle" lay-submit><i class="fa fa-check-circle"></i> 保存</button>
	            <button class="layui-btn btn-secondary close-popup"><i class="fa fa-times-circle"></i> 关闭</button>
	        </div>
	    </form>
	</div>
	<script src="/lib/layui/layui.js" charset="utf-8"></script>
    <script src="/js/main.js" charset="utf-8"></script>
    <script src="/js/util.js" charset="utf-8"></script>
    <script type="text/javascript" src="/js/plugins/jquery-2.2.4.min.js"></script>    
	<script>
	layui.use('laydate', function(){
	  var laydate = layui.laydate;
	  	  //常规用法
	  laydate.render({
	    elem: '#birth'  
	    ,type: 'date'
	    ,format: 'yyyy-MM-dd'
		,trigger: 'click'
	  });	
	});
	
	$(document).ready(function(){
		 var reg = new RegExp("ABABAB","g");//g,表示全部替换。
		 $("#training").val($("#training").val().replace(reg, "\n"));
		 $("#management").val($("#management").val().replace(reg, "\n"));
		 if($("#remark").val()){
			 $("#remark").val($("#remark").val().replace(reg, "\n"));
		 }
		});
	</script>
	</body>
	</html>
  1. 提交的js
    关键代码是form.on(‘submit(saveArticle)’, function(data){});
layui.use(['element', 'form', 'layer', 'upload'], function () {
    var $ = layui.jquery;
    var element = layui.element; //加载element模块
    var layer = layui.layer; //加载layer模块
    var upload = layui.upload;  //加载upload模块
    var form = layui.form;

form.on('submit(saveArticle)', function(data) {       
        var form1 = $(this).parents("form");
        var url = form1.attr("action");
        var serializeArray = form1.serializeArray();
        //console.log("data: " + serializeArray);
        for(ele in serializeArray){
        	if(serializeArray[ele].value.indexOf("\n")!=-1	){
        		var str = serializeArray[ele].value.replace(RegExp("\n", "g"), "ABABAB");
        		serializeArray[ele].value = str;
        	}
        }
        $.post(url, serializeArray, function (result) {
            if (result.data == null) {
                result.data = 'submit[refresh]';
            }
            $.fn.Messager(result);
        });
        return false;  //这句要加上,否则可能会报错
    });
  1. 题外,有部分代码完成的是textarea保存前\n转码与回显时换行,在另一篇博客里有记述。

做完以上工作,我的验证就成功了。

  1. 密码验证
form.verify({
		pass: function(value, item){ //value:表单的值、item:表单的DOM对象
		    if(new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)){
		      return '密码要有特殊字符';
		    }
		    if(!/^[\S]{8,12}$/.test(value)){
		      return '密码必须8到12位,且不能出现空格';
		    }
		    if(/^\d+\d+\d$/.test(value)){
		      return '密码不能全为数字';
		    }
		  }
		
		  //我们既支持上述函数式的方式,也支持下述数组的形式
		  //数组的两个值分别代表:[正则匹配、匹配不符时的提示文字]
		  //,pass: [/^[\S]{6,12}$/,'密码必须8到12位,且不能出现空格'] 
		  
		});
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Layui 是一个非常流行的前端 UI 框架,它提供了一系列的表单组件来方便我们进行表单的设计和提交。对于表单提交Layui 也提供了一些相应的 API 接口。下面是一个简单的示例代码,展示了如何使用 layui 实现表单提交页面: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>表单提交页面</title> <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css"> </head> <body> <div class="layui-container" style="margin-top: 50px;"> <div class="layui-row"> <div class="layui-col-md6 layui-col-md-offset3"> <form class="layui-form" action=""> <div class="layui-form-item"> <label class="layui-form-label">用户名</label> <div class="layui-input-block"> <input type="text" name="username" required lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">密码</label> <div class="layui-input-block"> <input type="password" name="password" required lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="login">登录</button> </div> </div> </form> </div> </div> </div> <script src="https://cdn.staticfile.org/jquery/3.4.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script> <script> layui.use(['form'], function () { var form = layui.form; //监听提交 form.on('submit(login)', function (data) { // Ajax 提交表单 $.ajax({ url: 'submit.php', type: 'POST', data: data.field, success: function (res) { if (res.code === 0) { layer.msg('提交成功'); } else { layer.msg('提交失败'); } } }); return false; }); }); </script> </body> </html> ``` 在这个示例中,我们使用了 layui 的表单组件来设计了一个登录表单,包括了用户名和密码两个字段。在表单提交时,我们通过 AJAX 的方式将表单数据提交到了服务器端的 submit.php,然后根据服务器返回的结果给出了相应的提示信息。 需要注意的是,这里我们使用了 layui表单验证功能,来确保用户输入的数据是合法的。在提交表单之前,我们需要调用 form.on('submit', function(data){}) 方法来监听表单提交事件,然后在回调函数中进行表单数据的处理和提交

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值