2011-02-16 78 views
3

我正在使用Javascript来验证一些代码,并且它工作正常,但是每当我调用alert来显示错误时,在警报消息的开始处我都会得到'undefined'。因此,当我预计警报显示'请输入低目标'时,我会得到'未定义请输入低目标'。有人可以告诉我我的代码有什么问题吗?'undefined'出现在警报中

//validation 
     var lowTarget; 
     var highTarget; 
     var errorList; 
     var isValid = true; 

     lowTarget = $('input[name="txtLowTarget"]').val(); 
     highTarget = $('input[name="txtHighTarget"]').val(); 

     if (lowTarget == "") { 
      errorList += "Please enter a Low Target\n"; 
      isValid = false; 
     } 
     else { 
      if (isNumeric(lowTarget) == false) { 
       errorList += "Low Target must be numeric\n"; 
       isValid = false; 
      } 
     } 

     if (highTarget == "") { 
      errorList += "Please enter a High Target\n"; 
      isValid = false; 
     } 
     else { 
      if (isNumeric(highTarget) == false) { 
       errorList += "High Target must be numeric\n"; 
       isValid = false; 
      } 
     } 

     if (isValid == true) { 
      if (!(parseFloat(highTarget) > parseFloat(lowTarget))) { 
       errorList += "High Target must be higher than Low Target\n"; 
       isValid = false; 
      } 
     } 

     if (isValid == false) { 
      alert(errorList); 
     } 

回答

8

将一些默认值分配给errorList,例如,空字符串

var errorList = ""; 

直到你做到这一点,的errorList初值为undefined

0

同时使用

var try2 = document.getElementsByName("y_email").value; 
alert(try2); 

我发现在我的项目同样的问题,现在我用下面的,而且运作良好

var try2 = document.getElementsByName("y_email")[0].value; 
alert(try2); 

(所以要加倍确保您使用的是正确的什么格式来使用。)