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 = "";
} }
那就是一個嚴重搞砸了一段代碼。任何機會,你可以只使用Dreamweaver再次設置你的新規則? 如果不是,您應該嘗試查明腳本中的確切區別,然後幫助更容易。 – 2011-05-13 05:14:34
請格式化您的代碼,提供一個說明錯誤的「工作」示例,準確描述您的期望以及實際發生的情況。此外,沒有看到電話或相關的HTML,你期待那些可能希望幫助你有一個水晶球。據我所知,兩位代碼之間的唯一區別是連字符如下:'errors + =' - '+ nm +''。我認爲這不會對運行此代碼的結果產生任何顯着影響,除了在字符串中明顯插入連字符。 – RobG 2011-05-13 05:34:38
感謝您的迴應Pal,唯一的變化是3行代碼。錯誤消息顯示在警告框中,但我想將錯誤寫入div標籤。 – ollie 2011-05-13 05:34:56