这个javascript在firefox中不起作用为什么? [英] this javascript does not work in firefox why?

查看:74
本文介绍了这个javascript在firefox中不起作用为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  var  startDate = document.getElementById( <%= txtStartDate.ClientID%>)。 value ; 
var endDate = document.getElementById( <%= txtEndDate.ClientID%>)。 value ;
var str = Date.parse(startDate).toString();
var str1 = Date.parse(endDate).toString();

if (str > = str1){
alert ( 结束日期必须大于开始日期);
document.getElementById( <%= txtEndDate.ClientID%>)。焦点();
return false ;
}







我的日期格式为:dd-MMM-yyyy即9月7日-2014

解决方案

Date.parse只能识别特定浏览器的特定格式,而且我们也没有选择使用此方法在任何地方提及输入格式。

在这种情况下,它认为输入格式为mm / dd / yyyy,结果是错误的。



要修复我们需要通过拆分每个部分来手动解析输入然后构造一个Date对象的问题,或者我们可以使用一些已经存在的库来处理这个问题,比如date.js / moment.js等。



手动解析示例:



  var  inputDate = 


' #' +控件名称).VAL();
var parts = inputDate.split( - );
var d = new 日期 Number (部件[ 2 ]), Number (部件[ 1 ]) - 1 数字(部件[ 0 ]));





使用date.js的示例:



  var  inputDate = 

' #' + controlName).val();
var d = 日期 .parseExact(inputDate, dd / MM / yyyy);







希望这会有所帮助或向你展示一些提示。


var startDate=document.getElementById("<%= txtStartDate.ClientID %>").value ;
       var endDate= document.getElementById("<%= txtEndDate.ClientID %>").value;
         var str = Date.parse(startDate).toString();
         var str1 = Date.parse(endDate).toString();

        if (str >= str1) {
            alert("End Date must be greater than Start Date");
            document.getElementById("<%= txtEndDate.ClientID %>").focus();
            return false;
        }




My Date Format is : dd-MMM-yyyy i.e. 9-Jul-2014

解决方案

Date.parse can recognize only specific formats for specific browsers, and also we don't have the option for mention the input format anywhere using this method.
In that case it thinks that the input is in the format mm/dd/yyyy, so the result is wrong.

To fix the issue we need either to parse the input manually by splitting each part and then construct a Date object or we may use some already exisitng library which will take care of this like date.js/moment.js etc.

Example for manual parsing:

var inputDate =


('#' + controlName).val(); var parts = inputDate.split("-"); var d = new Date(Number(parts[2]), Number(parts[1]) - 1, Number(parts[0]));



Example using date.js:

var inputDate =


('#' + controlName).val(); var d = Date.parseExact(inputDate , "dd/MM/yyyy");




Hope this will be of help or show you some hint to go forward.


这篇关于这个javascript在firefox中不起作用为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆