Java Script 在 ubuntu Firefox 中不起作用

Java Script 在 ubuntu Firefox 中不起作用

我的 ASP 应用程序在 Windows IE 中运行完美,但当我在 ubuntu Firefox 上运行时,Javascript 无法正常工作。

下面是我的 java 脚本代码.....

我正在调用这个 java 脚本onFocusonBlur触发事件。当onBlur从日期格式触发时,会在 ubuntu firefox 中删除 1 位数字。

请有人帮忙。

函数 DateFormat(vDateName, vDateValue, e, dateCheck, dateType) {

vDateType = 日期类型;

// vDateName = 对象名称
// vDateValue = 被检查字段的值
// e = 事件
// 日期检查
// True = 验证 vDateValue 是否为有效日期
// False = 仅格式化输入到 vDateValue 中的值
// 日期类型
// 1 = 月/日/年
// 2 = 年/月/日
// 3 = 日/月/年


   //输入第一个数字的波浪符号,然后您就可以检查变量信息。
   如果 (vDateValue == “~”)
   {
      alert("AppVersion = "+navigator.appVersion+" \nNav. 4 版本 = "+isNav4+" \nNav. 5 版本 = "+isNav5+" \nIE 版本 = "+isIE4+" \n年份类型 = "+vYearType+" \n日期类型 = "+vDateType+" \n分隔符 = "+strSeperator);
      vDateName.值 = “”;
      vDateName.focus();
      返回 true;
   }

   var whichCode = (window.Event) ?e.which : e.keyCode;

   // 检查分隔符是否已存在。
   // 如果存在分隔符并且长度大于 8,则忽略日期
   如果(vDateValue.length>8&&isNav4)
   {
      如果 ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
         返回 true;
   }

   //消除所有无效的 ASCII 代码
   var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
   如果 (alphaCheck.indexOf(vDateValue) >= 1)  
   {
      如果(isNav4)
      {
         vDateName.值 = “”;
         vDateName.focus();
         vDateName.选择();
         返回 false;
      }
      别的
      {
         vDateName.值 = vDateName.值.substr(0,(vDateValue.length-1));
         返回 false;
      }
   }
   if (whichCode == 8) //忽略 Netscape 的退格键值。IE 没有值
      返回 false;
   别的
   {
      //为 0123456789 创建数字字符串值/
      //提供的代码包括键盘和小键盘的值

      var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
      如果 (strCheck.indexOf(whichCode) != -1)  
      {
         如果(isNav4)  
         {
            如果(((vDateValue.length =1))
            {
               alert("日期无效\n请重新输入");
               vDateName.值 = “”;
               vDateName.focus();
               vDateName.选择();
               返回 false;
            }
            如果 (vDateValue.length == 6 && dateCheck)  
            {
               var mDay = vDateName.value.substr(2,2);
               var mMonth = vDateName.value.substr(0,2);
               var mYear = vDateName.value.substr(4,4)

               //将两位数的年份变成四位数的年份
               如果 (mYear.length == 2 && vYearType == 4)
               {
                  var mToday = new Date();

                  //如果年份距今超过 30 年,则使用 19,否则使用 20
                  var checkYear = mToday.getFullYear() + 30;
                  var mCheckYear = '20' + mYear;
                  如果 (mCheckYear >= checkYear)
                     myYear = '19' + myYear;
                  别的
                     myYear = ‘20’ + myYear;
               }
               var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;

               如果 (!dateValid(vDateValueCheck))  
               {
                  alert("日期无效\n请重新输入");
                  vDateName.值 = “”;
                  vDateName.focus();
                  vDateName.选择();
                  返回 false;
                 }
               返回 true;

            }
            别的
            {
               // 重新格式化日期以进行验证,并将日期类型设置为 1


               如果(vDateValue.length> = 8 && dateCheck)  
               {
                  如果 (vDateType == 1) // mmddyyyy
                  {
                     var mDay = vDateName.value.substr(2,2);
                     var mMonth = vDateName.value.substr(0,2);
                     var mYear = vDateName.value.substr(4,4)
                     vDateName.值 = mMonth+strSeperator+mDay+strSeperator+mYear;
                  }
                  如果 (vDateType == 2) // yyyymmdd
                  {
                     var mYear = vDateName.value.substr(0,4)
                     var mMonth = vDateName.value.substr(4,2);
                     var mDay = vDateName.value.substr(6,2);
                     vDateName.值 = mYear+strSeperator+mMonth+strSeperator+mDay;
                  }
                  如果 (vDateType == 3) // ddmmyyyy
                  {
                     var mMonth = vDateName.value.substr(2,2);
                     var mDay = vDateName.value.substr(0,2);
                     var mYear = vDateName.value.substr(4,4)
                     vDateName.值 = mDay+strSeperator+mMonth+strSeperator+mYear;
                  }

                  //创建一个临时变量用于存储DateType并更改
                  //将 DateType 设置为 1 以进行验证。

                  var vDateTypeTemp = vDateType;
                  v日期类型 = 1;
                  var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;

                  如果 (!dateValid(vDateValueCheck))  
                  {
                     alert("日期无效\n请重新输入");
                     vDateType = vDateTypeTemp;
                     vDateName.值 = “”;
                     vDateName.focus();
                     vDateName.选择();
                     返回 false;
                    }
                     vDateType = vDateTypeTemp;
                     返回 true;
                }
               别的
               {
                  如果(((vDateValue.length =1))
                  {
                     alert("日期无效\n请重新输入");
                     vDateName.值 = “”;
                     vDateName.focus();
                     vDateName.选择();
                     返回 false;
                  }
               }
            }
         }
         别的  
         {
         // 非 isNav 检查
            如果(((vDateValue.length =1))
            {
               alert("日期无效\n请重新输入");
               vDateName.值 = “”;
               vDateName.focus();
               返回 true;
            }

            // 将日期重新格式化为可以验证的格式。mm/dd/yyyy


            如果(vDateValue.length> = 8 && dateCheck)  
            {

               // 可以在此处输入其他日期格式并将其解析为
               // 验证程序将识别的有效日期格式。

               如果 (vDateType == 1) // mm/dd/yyyy
               {
                  var mMonth = vDateName.value.substr(0,2);
                  var mDay = vDateName.value.substr(3,2);
                  var mYear = vDateName.value.substr(6,4)
               }
               如果 (vDateType == 2) // yyyy/mm/dd
               {
                  var mYear = vDateName.value.substr(0,4)
                  var mMonth = vDateName.value.substr(5,2);
                  var mDay = vDateName.value.substr(8,2);
               }
               如果 (vDateType == 3) // 日/月/年
               {
                  var mDay = vDateName.value.substr(0,2);
                  var mMonth = vDateName.value.substr(3,2);
                  var mYear = vDateName.value.substr(6,4)
               }
               如果 (vYearLength == 4)
               {
                  如果(mYear.length = checkYear)
                     myYear = '19' + myYear;
                  别的
                     myYear = ‘20’ + myYear;
                  vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;

                  // 将新值存储回字段。此函数将
                  // 由于首先输入的是年份,因此不适用于日期类型 2。

                  如果 (vDateTypeTemp == 1) // mm/dd/yyyy
                     vDateName.值 = mMonth+strSeperator+mDay+strSeperator+mYear;
                  如果 (vDateTypeTemp == 3) // dd/mm/yyyy
                     vDateName.值 = mDay+strSeperator+mMonth+strSeperator+mYear;

               }


               如果 (!dateValid(vDateValueCheck))  
               {
                  alert("日期无效\n请重新输入");
                  vDateType = vDateTypeTemp;
                  vDateName.值 = “”;
                  vDateName.focus();
                  返回 true;
                 }
               vDateType = vDateTypeTemp;
               返回 true;

            }
            别的
            {

               如果 (vDateType == 1)
               {
                  如果 (vDateValue.length == 2)  
                  {
                     vDateName.值 = vDateValue+strSeperator;
                  }
                  如果 (vDateValue.length == 5)  
                  {
                     vDateName.值 = vDateValue+strSeperator;
                  }
               }
               如果 (vDateType == 2)
               {
                  如果 (vDateValue.length == 4)  
                  {
                     vDateName.值 = vDateValue+strSeperator;
                  }
                  如果 (vDateValue.length == 7)  
                  {
                     vDateName.值 = vDateValue+strSeperator;
                  }
               }
               如果 (vDateType == 3)
               {
                  如果 (vDateValue.length == 2)  
                  {
                     vDateName.值 = vDateValue+strSeperator;
                  }
                  如果 (vDateValue.length == 5)  
                  {
                     vDateName.值 = vDateValue+strSeperator;
                  }
               }
               返回 true;
            }
         }
         如果 (vDateValue.length == 10 && dateCheck)  
         {
            如果 (!dateValid(vDateName))  
            {
// 取消注释下一行代码,用于调试 dateValid() 函数错误消息
// 警报(错误);  
               alert("日期无效\n请重新输入");
               vDateName.focus();
               vDateName.选择();
             }
         }
         返回 false;
      }
      别的  
      {
         // 如果值不在字符串中,则返回字符串减去最后一个值
         // 键已输入。
         如果(isNav4)
         {
            vDateName.值 = “”;
            vDateName.focus();
            vDateName.选择();
            返回 false;
         }
         别的
         {
            vDateName.值 = vDateName.值.substr(0,(vDateValue.length-1));
            返回 false;
         }
        }
    }
}

答案1

在 Firefox 上按 CTRL+SHIFT+J,进入错误控制台,然后重新加载页面。查看会出现什么错误。

相关内容