Jquery 日期规则在 Firefox 和 IE 中不起作用

Posted

技术标签:

【中文标题】Jquery 日期规则在 Firefox 和 IE 中不起作用【英文标题】:Jquery date rule not working in firefox and IE 【发布时间】:2016-03-25 20:28:34 【问题描述】:

我已经使用 jquery 日期规则呈现了普通文本。日期规则在 chrome 中运行良好,但在 Firefox 和 IE 中不起作用。请看我的代码块。

<form id="myform"> <input id="datepick" type="text" name ="datepick"/> <input type="submit" id="ValidateDate" /> </form>

    $("#myform").validate(
         rules: 
           datepick:
               date:"MM/dd/yyyy" 
               
      ,
        messages: 
           datepick:
             date:"Give MM/dd/yyyy format"
        
     
  );
    $('#datepick').keyup(function () 
        $("#ValidateDate").submit();
    );
</script>

当我输入 12/3err/3001 时,它会在所有浏览器中引发错误

当我输入 12/234/2333 时,它会抛出错误 chrome not in Firefox 和 IE。

另外我想分享一个信息。

http://jqueryvalidation.org/date-method/

在上面的链接中,jQuery 验证在 Mozilla 和 IE 浏览器中无法正常工作,即使对于普通的文本框也是如此。

请在上面的 jquery 链接示例中输入 22/233/2222 值,然后您可以找到以下输出变化

在铬:

在 Firefox 中:

请帮我解决这个问题.....

谢谢,

戈巴拉克里希南

【问题讨论】:

keyup 处理程序的目的是什么?这没有任何意义,因为默认情况下 validate 插件已经评估了每个 keyup 事件的所有规则。 【参考方案1】:

您链接到的文档是这样说的:

此方法不应使用,因为它依赖于新的 Date 构造函数,该构造函数在浏览器和语言环境中的行为非常不同。改用dateISO 或使用一种特定于语言环境的方法(在localizations/ 和additional-methods.js 中)。

我的重点。

【讨论】:

但是我创建了一个简单的普通文本框示例,带有日期规则(上面提供的代码块)。它在 Firefox 和 IE 浏览器中无法正常工作..你有什么解决方案吗....请帮助我 @GopalaKrishnansubramanian 请阅读我发布的内容。你的语法是正确的。您使用的方法存在缺陷,并且在您遇到的浏览器中无法始终如一地工作。您需要使用dateISO【参考方案2】:

此问题是由于浏览器之间的日期解析行为差异造成的。你可以看到下面。

新日期("92/12/2015") - 无效日期

火狐

新日期("92/12/2015") - 日期 Sun Jun 07 1998 00:00:00 GMT+0530(印度标准时间)

date 规则将仅根据输入的日期值检查格式,因此在 FF 中验证成功。

因此,正如@Somekidwithhtml 建议的那样,您可以使用dateIso,它将根据 ISO 日期标准检查日期或根据您的需要实施我们的自定义验证。

http://jqueryvalidation.org/jQuery.validator.addMethod/

【讨论】:

以上是关于Jquery 日期规则在 Firefox 和 IE 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

IE11 和 Firefox 中的日期选择器支持

Jquery DataTable TableTool 在 IE 和 Firefox 中不起作用

从 ie/firefox/chrome 中的 jquery 调用跨域 .net 方法

jQuery背景按钮动画适用于Chrome和IE8,但不适用于Firefox或IE9 [重复]

jQuery:代码在 Firefox 中有效,但在 IE 中无效

表格排序不适用于 ie9、firefox 中的日期