2015-01-05 25 views
0

我有一些JavaScript應該作爲您如何驗證提示框輸入的示例。JavaScript提示框:如何驗證取消按鈕(null)

用戶單擊按鈕,輸入名稱,JavaScript驗證輸入並顯示適當的消息。如果名字沒有問題,就說它是一個好名字,如果你輸入的是一個數字/符號,它表示輸入無效(到目前爲止都是好的)。但是,當用戶在提示框上單擊「取消」時,消息顯示「null」是個好名字。我試圖抓住這一點,但似乎並不奏效。如何讓它顯示一條消息,說明用戶單擊「取消」時沒有輸入有效的名稱?

這裏是它的JS小提琴:http://jsfiddle.net/TurgidWizard/jzzsqu06/

HTML:

<button onclick="Validation()">Click Me</button> 
<p id="vresult"></p> 

的Javascript:

function Validation() { 
    document.getElementById("vresult").innerHTML = ""; 
    PetName = prompt("Please enter your favourite pet's name:", ""); 
    var T = Test(PetName); 
    if (T == false | T == "null") { 
     document.getElementById("vresult").innerHTML = "You did not enter a valid name!"; 
    } else { 
     document.getElementById("vresult").innerHTML = PetName + " is a lovely name, good choice!!"; 
    } 

} 

function Test(str) { 

    return /^[a-zA-Z]+$/.test(str) 

} 

注意我是如何試圖用「如果(T ==假| T ==「null」)「捕獲無效消息的」null「。

回答

1

你的語法是一個糟糕的位置:

if (T == false | T == "null") 

null不應該是一個字符串,或者是|||

您還想檢查PetName是否爲null,而不是正則表達式的結果。 行應該是這樣的:

if (!T || !PetName) 

這是你的提琴:http://jsfiddle.net/jzzsqu06/1/

+0

歡呼聲中,仍然在學習,感謝意見 – TurgidWizard

0

只是檢查是否strnull(相對於"null"

function Test(str) { 
    return (str !== null) && /^[a-zA-Z]+$/.test(str); 
} 

然後簡單地檢查

if (T === false) { 

prompt將返回輸入的值,如果按下OK或回報,包括空字符串"" ,如果按下取消,則爲null

0

納入這一行你如果條件涉及取消選項:

if (T != '' && T != null){ 
document.getElementById("vresult").innerHTML = "You did not enter a valid name!"; 
}