2014-10-27 76 views
0

我可以发誓我正确地验证了一切,直到我的老师决定寻找每个可能的字符组合,并以某种方式记录我10分。所以我参加了我的代码,并尝试修正验证,但是,尽管这与他演讲大纲中的示例类似,但它决定让a1无意地通过该表单。我再次使用这个linkcharCodeAt()使用一些验证,但不是一些其他的验证

检查了ascii字符代码图表,并且1仍在不断接通。这是我的代码部分:

else if(f1.state.value.length != 2 || 
    !((f1.state.value.charCodeAt(0)>=65 && f1.state.value.charCodeAt(0)<=90) || 
    (f1.state.value.charCodeAt(1)>=97 && f1.state.value.charCodeAt(1)<=122))) 
    { 
     alert('Please enter a state in abreviated form'); 
     f1.state.focus(); 
     return false; 
    } 

为什么1不停地通过?

编辑:另外,我注意到1A工作(或不工作),而不是A1 ..

回答

0

有趣,我拿了!把它放在每个单独的括号里面!它的工作原理......所以如果其中一个是真的,那么它就会变成真实的......然后就是这样。

所以它应该是:

else if(f1.state.value.length != 2 || 
     (!(f1.state.value.charCodeAt(0)>=65 && f1.state.value.charCodeAt(0)<=90) || 
     !(f1.state.value.charCodeAt(1)>=97 && f1.state.value.charCodeAt(1)<=122))) 
     { 
      alert('Please enter a state in abreviated form'); 
      f1.state.focus(); 
      return false; 
     } 
相关问题