2011-05-13 56 views
0

我在Firefox中查看验证错误时出现以下错误,它适用于Chrome和Safari。Firefox javascript错误

这是原来的代码:

function MM_validateForm() { //v4.0 
    if (document.getElementById){ 
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments; 
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]); 
     if (val) { nm=val.name; if ((val=val.value)!="") { 
     if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@'); 
      if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n'; 
     } else if (test!='R') { num = parseFloat(val); 
      if (isNaN(val)) errors+='- '+nm+' must contain a valid number no spaces.\n'; 
      if (test.indexOf('inRange') != -1) { p=test.indexOf(':'); 
      min=test.substring(8,p); max=test.substring(p+1); 
      if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n'; 
     } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; } 
    } if (errors) alert('The following error(s) occurred:\n'+errors); 
    document.MM_returnValue = (errors == ''); 
} } 

这是我的新的JavaScript代码来发送错误信息到id fterror一个div;

function MM_validateForm() { //v4.0 
    if (document.getElementById){ 
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments; 
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]); 
     if (val) { nm=val.name; if ((val=val.value)!="") { 
     if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@'); 
      if (p<1 || p==(val.length-1)) errors+=' '+nm+' must contain an e-mail address.\n'; 
     } else if (test!='R') { num = parseFloat(val); 
      if (isNaN(val)) errors+='- '+nm+' must contain a valid number no spaces.\n'; 
      if (test.indexOf('inRange') != -1) { p=test.indexOf(':'); 
      min=test.substring(8,p); max=test.substring(p+1); 
      if (num<min || max<num) errors+=' '+nm+' must contain a number between '+min+' and '+max+'.\n'; 
     } } } else if (test.charAt(0) == 'R') errors += ' '+nm+' is required.\n'; } 
    } if (errors) document.getElementById('fterror').innerText = "Please correct the following error(s): \n"+errors; 
    document.MM_returnValue = (errors == ''); 
    if (errors == '') document.getElementById('fterror').innerText = ""; 
} } 
+3

那就是一个严重搞砸了一段代码。任何机会,你可以只使用Dreamweaver再次设置你的新规则? 如果不是,您应该尝试查明脚本中的确切区别,然后帮助更容易。 – 2011-05-13 05:14:34

+0

请格式化您的代码,提供一个说明错误的“工作”示例,准确描述您的期望以及实际发生的情况。此外,没有看到电话或相关的HTML,你期待那些可能希望帮助你有一个水晶球。据我所知,两位代码之间的唯一区别是连字符如下:'errors + =' - '+ nm +''。我认为这不会对运行此代码的结果产生任何显着影响,除了在字符串中明显插入连字符。 – RobG 2011-05-13 05:34:38

+0

感谢您的回应Pal,唯一的变化是3行代码。错误消息显示在警告框中,但我想将错误写入div标签。 – ollie 2011-05-13 05:34:56

回答

0

你需要设置innerHTML,而不是innerText为它工作在Firefox:

document.getElementById('fterror').innerHTML = ... 
+0

我已经根据要求进行了更改,所有工作,非常感谢您的帮助:))) – ollie 2011-05-13 05:42:18