2014-10-27 72 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; 
     } 
相關問題