2017-08-15 96 views
3

僅當用戶單擊時,下面的代碼才運行alert('Please enter your name!');取消上的提示。如果用戶沒有在提示框中輸入任何內容並點擊輸入,我試圖讓代碼也運行所述警報。但是,當他們輸入任何內容並點擊輸入時,代碼將呈現「Hello」。我該如何解決這個問題?JavaScript提示()輸入

var theName = prompt('What is your name?'); 

if(theName != null) { 
    document.write('Hello, ' + theName); 
} 

else{ 
    alert('Please enter your name!'); 
} 
+2

[RTM](https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt):您可以通過添加另一個條件你if語句檢查該_IF用戶在不輸入任何文本的情況下單擊確定,返回空字符串._ –

回答

1

Return value from prompt

字符串。如果用戶點擊「確定」,則返回輸入值。如果用戶點擊「取消」,則返回空值。如果用戶單擊確定而不輸入任何文本,則返回空字符串。

1

當用戶單擊輸入而不輸入任何字符串時,結果將是「空字符串」,因此「」。 你只是檢查null。空字符串不爲空。所以代碼按預期工作。 您應該檢查是否爲空或「」。 的快捷方式會被濫用的JavaScript一點,只是檢查

if (theName) { ...} else { ... } 

沒有對空檢查可言,因爲空和空串都是假十歲上下的的JavaScript。

1

正如@JohnnyMopp和Idos所說,如果用戶點擊輸入而不輸入任何內容,將會返回空字符串。

var theName = prompt('What is your name?'); 

if(theName != null && theName != "") { 
    document.write('Hello, ' + theName); 
} 

else{ 
    alert('Please enter your name!'); 
}