JQuery validate date 日期校验问题

  做JS API时,发现JQuery校验插件的一个时间校验问题。

  最终目的:输入一个字符串,校验如果是正确的日期,则通过,否则给出提示。

  做法:

$("#validateForm").validate({
				debug : true,
				rules : {"date" : {
						isDate : true
					     }
                                  },
				messages : {
					"date" : {
						date : "日期格式不正确"
					}
				}
  效果:输入201300 报错,2014/01/01 正确  2014-01-01正确  20140101错误,这个地方可以做格式转换

  问题:输入2016-04-31,竟然校验通过了,一脸黑线

  原因:特意调出了JQuery validate的框架代码,原来是通过校验new Date(value)来判断日期是否有效。

// http://docs.jquery.com/Plugins/Validation/Methods/date
		date: function(value, element) {
			return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
		}
             然后,就试了一下new Date()函数
new Date("2016-04-31")
Sun May 01 2016 08:00:00 GMT+0800 (中国标准时间)
            new Date()会把4月31号直接转换成5月1号,只能说太智能了,但这种显然不是我们想要的效果

  解决方法:解决就从new Date()下手,转换成日期后,查出日期的月份,如果此时的月份和传入日期的月份不一致,说明日期又问题,解决!

//日期
jQuery.validator.addMethod("isDate", function(value, element){
	var ereg = /^(\d{1,4})(-|\/)(\d{1,2})(-|\/)(\d{1,2})$/;
	var r = value.match(ereg);
	if (r == null) {
		return false;
	}
	var d = new Date(r[1], r[3] - 1, r[5]);
	var result = (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[5]);
	
	return this.optional(element) || (result);
}, "请输入正确的日期");

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: jQuery Validate是一个jQuery插件,用于在客户端对表单进行验证。它提供了一组规则和消息,可以轻松地验证表单字段,如必填字段、电子邮件地址、电话号码等。它还提供了自定义规则和消息的选项,以满足特定的验证需求。使用jQuery Validate可以提高表单的可靠性和用户体验。 ### 回答2: jQuery validate是一种JavaScript库,用于在客户端验证表单输入。它提供了功能强大的验证选项,可以帮助开发人员更轻松地处理表单输入并提高应用程序的可靠性。JQuery validate使用简单,可以帮助开发人员轻松地验证表单输入。它包括多种验证规则,例如需要字段、电子邮件、URL、日期、数字等,这些规则非常灵活,可以根据需求自定义。 使用jQuery validate来验证表单输入,可以提供以下好处: 1. 实现更好的用户体验 通过在用户填写表单时实时验证输入数据,可以防止用户提交无效或格式不正确的数据。这样可以极大地提高用户体验,避免用户填写了错误的数据后还需要进行修改或重新提交的情况。 2. 提高应用程序的可靠性 使用jQuery validate可以在客户端验证数据格式和必填字段,从而避免无效数据提交到服务器端,提高应用程序的可靠性。这可以减少服务器端的负载并提高应用程序的响应速度。 3. 节省开发时间 通过使用jQuery validate,开发人员可以轻松地实现表单验证功能,减少开发时间,并大大降低开发成本。 下面是使用jQuery validate实现表单验证的流程: 1. 在HTML中引入jquery.validate.min.js和jquery.min.js文件。 2. 在表单上应用validate方法。 $('#form').validate({ // 定义规则 rules: { // 表单元素name:规则 name: { required: true, minlength: 2, maxlength: 10 }, email: { required: true, email: true }, password: { required: true, minlength: 5 }, confirm_password: { required: true, minlength: 5, equalTo: "#password" } }, // 定义消息 messages: { name: { required: "请输入你的名字", minlength: "名字长度不能少于2个字符", maxlength: "名字长度不能大于10个字符" }, email: { required: "请输入你的邮箱地址", email: "请输入正确的邮箱地址" }, password: { required: "请输入密码", minlength: "密码长度不能小于5个字符" }, confirm_password: { required: "请再次输入密码", minlength: "密码长度不能小于5个字符", equalTo: "两次输入的密码不一致" } } }); 3. 定义验证规则和验证消息。 规则可以定义为必填字段、最小长度、最大长度等,而消息可以定义为自定义的消息内容。 4. 在页面中显示验证结果。 在每个表单元素后面显示相应的验证结果,可以让用户更清楚地知道哪些字段需要修改。 总之,使用jQuery validate可以帮助开发人员更轻松地验证表单输入,提高应用程序的可靠性和用户体验。 ### 回答3: jQuery Validate是一个基于jQuery的表单验证插件,为用户提供了一种简单、可靠、美观的解决方案。使用jQuery Validate,可以轻松地通过对输入框设置校验规则,自定义错误提示等功能来实现表单的校验和提交。 jQuery Validate主要有以下几个方面的功能: 1. 必填项校验:可以通过设置必填项的规则,确保用户填写了必要的信息。 2. 数据格式校验:可以通过设置数据格式的规则,比如手机号码、电子邮件地址,确保用户填写的数据符合要求。 3. 长度校验:可以通过设置数据长度的规则,比如最小长度、最大长度,确保用户填写的数据在指定的长度范围内。 4. 自定义错误提示:可以通过设置自定义错误提示信息,让用户更清楚地知道哪些数据填写不正确,以便及时修改。 5. 实时校验:可以在用户输入数据时实时校验其正确性,及时提醒用户填写错误的数据。 6. 提交表单前校验:可以在用户提交表单时进行全面的校验,确保用户填写的数据全部正确。 总之,jQuery Validate是一款非常实用的表单校验插件,可以帮助开发者轻松地实现表单校验和提交。无论是在线注册、登录、资料修改等场景下,都能准确、快速地捕捉用户的输入信息,避免填写错误导致的后续问题,提升用户的使用体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值