2016-04-15 16 views
1

私はあなたの名前と相互作用するウェブサイトを作ろうとしています。 あなたがログオンするときに、最初にあなたの名前を入力する必要があり、そのために私はプロンプトウィンドウ(Javascript)を使用します。ここでの問題は単に「キャンセル」を押すだけで次のコード行に簡単にアクセスできることです。 だから私はこの作られた:2つの 'While'条件?

while (userName === "" & userName === null); {userName = prompt("What's your name?")} 

をしかし、ユーザーを押す「」キャンセル「」は二回、Javascriptがちょうど完全に停止した後。 ウェブサイトのHTMLを含む、私のコード全体がここにあります。 HTMLを無視:)

<!DOCTYPE html> 
<html lang="en-US"> 

<title> 
Javascript 
</title> 
<head> 
</head> 
<body> 
<table> 
<tr> 
<td> 
<script> 
//Here I'll make a few variables for Javascript to work with. 
var accessGranted = false 
var userName 
var userNameConfirmed = false 
var userAge 
var userAgeConfirmed = false 
userName = prompt("What's your name?") 
//Now I'll make a while that has two conditions to run. 
while (userName === "" & userName === null); { 
userName = prompt("Hvad hedder du?") 
}</script> 
</td> 
</tr> 
</table> 
</body> 
</html> 
+1

確認してください[ 'while'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/while)と[論理演算子](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators) – georg

答えて

1

semicolon separates statementsので、ここで

while (userName === "" & userName === null); { 
//          ^^^ no semicolon 
//     ^^^ change it to || 

をセミコロンを削除してください。次のブロックはwhileループの一部として処理されません。

次に、あなたが名前を尋ねるとまたはnull空の場合、それが再びPROMTなければならないので、logical OR||にオペレータを変更する必要があります。

var accessGranted = false, 
 
    userName, 
 
    userNameConfirmed = false, 
 
    userAge, 
 
    userAgeConfirmed = false; 
 

 
userName = prompt("What's your name?") 
 

 
while (userName === "" || userName === null) { 
 
    userName = prompt("Hvad hedder du?"); 
 
} 
 
alert(userName);

+0

'&'が '&&'になるように答えを更新する必要があります。 – Andy

+1

ありがとう!夢のように働く:D –