2014-01-25 150 views
0

對不起,如果問題是非常基本的 - 我來自web東西(HTML/CSS)的設計方面,而且是JavaScript的新手。我的前兩個驗證正在工作(檢查名稱和電子郵件的空字段),但我無法獲得顯示非法字符檢查的錯誤消息。 這裏是代碼,我從各種'how to'來源將它們拼湊在一起。任何幫助將不勝感激!檢查Javascript無效的無效字符

function validateForm(){ 
    var noName=document.forms["myForm"]["sender_name"].value; 
    noEmail=document.forms["myForm"]["sender_email"].value; 
    illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/; 

    if (noName==null || noName==""){ 
     alert("Bitte geben Sie Ihren Namen ein"); 
     return false; 
    } 

    if (noEmail==null || noEmail==""){ 
     alert("Bitte geben Sie Ihre Email-Adresse ein"); 
     return false; 
    } 

    if (noName.match(illegalChars)){ 
     alert("Ungültige Eingabe"); 
     return false; 
    } 
}  
+0

工作對我來說:HTTP

而且當你在你需要記住使用var語句每個變量或使用聲明之間一個var和逗號頂部聲明變量://jsfiddle.net/barmar/7L3CQ/2/ – Barmar

+0

您不需要在正則表達式中跳過'[]'中的大多數字符。你最後一個'if'中還有一些不必要的額外的大括號,並且你錯過了該函數的大括號。 – Barmar

+0

謝謝巴爾瑪。它是一個php文檔的一部分,它現在剛剛上傳到服務器,但在本地測試時,錯誤消息沒有與其他JS消息一起顯示。感謝您指出語法錯誤,我現在已經糾正它們 - 週末愉快! –

回答

0

我看到答案已經在評論中給出,也是小提琴。不過,我想我會一點點JS語法以及幫助:

function validateForm() { 
    var noName = document.forms["myForm"]["sender_name"].value; 
    var noEmail = document.forms["myForm"]["sender_email"].value; 
    var illegalChars = /[\(\)\<\>\,\;\:\\\"\[\]]/; 

    if (!noName) { 
     alert("Bitte geben Sie Ihren Namen ein"); 
     return false; 
    } 
    if (!noEmail) { 
     alert("Bitte geben Sie Ihre Email-Adresse ein"); 
     return false; 
    } 

    if (noName.match(illegalChars)) { 
     { 
      alert("Ungültige Eingabe"); 
      return false; 
     } 

    } 
} 

沒有必要檢查null和「」因爲他們在JS都falsey值這麼簡單:

if(!noName) 

這就夠了。

var//iable declarations 
     noName = document.forms["myForm"]["sender_name"].value, 
     noEmail = document.forms["myForm"]["sender_email"].value, 
     illegalChars = /[\(\)\<\>\,\;\:\\\"\[\]]/ 
    ; 

http://jsfiddle.net/7L3CQ/3/