2017-09-21 19 views
1

確かにこれは簡単な問題ですが、私はこれに新しいです。ユーザーがパスワードを設定するためのシンプルなWebサイトを開発しようとしているのですが、パスワードを正しく取得すれば、賞金を獲得したcongrats画面に移動してください。私の文がJavaScript文字列比較が検出されない

<script> 
function CheckPassword() { 
    var pword = document.getElementById("inpPassword").value; 

    if (pword == ""|| pword == NULL) { 
     alert("Please enter a password"); 
    } else if (pword == 'newman') { 
     window.open('congratulations.html', '_self'); 
    } else { 
     alert("Wrong password");  
    } 
} 
</script> 

以下のコードで作業されていない場合、私はpword値との警告を追加した場合しかし、それは、入力されたものを正しく出力します。ただし、パスワード入力が空白の場合はコードがピックアップされますが、入力フィールドが空白でない場合は、別の画面には表示されず、間違ったパスワードの警告ボックスが表示されます。私は新しいページへのリンクの代わりに正しいと警告ボックスで試してみましたが、まだ動作しませんでした。また、問題があった場合にはString(pword)を使用してみました。これは単純な解決策だと確信していますが、それを見ることはできません。

おかげ

+0

ので、我々はあなたのコードをテストすることができ、これに行くためにHTMLを入力してください。また、ブラウザのコンソールを確認してください。私はそれが問題を教えてくれると思われます。 – musefan

+0

'if(pword ==" "|| pword == null)'は 'if(!pword)' – codtex

答えて

1

あなたがNULLと比較したときに問題があるようです。ブラウザのコンソールをチェックするとあなたはおそらく次のエラーを取得します:

Uncaught ReferenceError: NULL is not defined

ヌルチェックするための正しい構文ではありません、それはあなたが持っていない「NULL」と呼ばれる変数を探します。代わりにnull(小文字)を使用してください:

if (pword == ""|| pword == null){ 

次のように完全な調整コードは次のとおりです。

function CheckPassword() { 
    var pword = document.getElementById("inpPassword").value; 

    if (pword == ""|| pword == null) { 
     alert("Please enter a password"); 
    } else if (pword == 'newman') { 
     window.open('congratulations.html', '_self'); 
    } else { 
     alert("Wrong password");  
    } 
} 

Here is a working example.

1

function CheckPassword() { 
 
    var pword = document.getElementById("inpPassword").value; 
 

 
    if (pword == ""|| pword == null){ 
 
     alert("Please enter a password"); 
 
    } 
 
    else if (pword == 'newman') { 
 
     window.open('congratulations.html', '_self'); 
 
    } 
 
    else 
 
    { 
 
     alert("Wrong password");  
 
    } 
 

 

 
}
<input type='password' id='inpPassword'> 
 
<input type='button' onclick='CheckPassword()'>

if (pword == "" || pword == null)、そのnullNULLではありません。キーワードは大文字と小文字が区別さ

0

Null、 ""はJavascriptでfalseに相当します。

if (!pword) { 
 
     alert("Please enter a password"); 
 
    } else if (pword === 'newman'){ 
 
     window.open('congratulations.html', '_self');   
 
    } else {   
 
     alert("Wrong password"); 
 
    } 

0

あなたはあなたがnull代わりのNULL使うべき小さなケースにnullを書くことができ、その作業

function CheckPassword() { 
 
var pword = document.getElementById("inpPassword").value; 
 

 
if (pword == "" || pword == null) { 
 
    alert("Please enter a password"); 
 
} else if (pword == 'newman') { 
 
    window.open('congratulations.html', '_self'); 
 
} else { 
 
    alert("Wrong password"); 
 
} 
 
}
<input id="inpPassword" onblur="CheckPassword()">

+0

ありがとうございました。うまく動作します。 – rookief1ain

1

ので:あなただけに持っています。

function CheckPassword() { 
 
    var pword = document.getElementById("inpPassword").value; 
 

 
    if (pword == ""|| pword == null){ 
 
     alert("Please enter a password"); 
 
    } 
 
    else if (pword == 'newman') { 
 
     window.open('congratulations.html', '_self'); 
 
    } 
 
    else 
 
    { 
 
     alert("Wrong password");  
 
    } 
 

 

 
}
<input id="inpPassword"> 
 
<button onclick="CheckPassword()">Click</button>

1

あなたがここに試す可能性があります:私のスニペットにはcongratulations.htmlがないので、それは、新しいウィンドウを開くほかに働くように思える

間違いがここにいた、あなたはNULLを書きましたnullの代わりに、javascriptのbeacuseは予約キーワードとしてnullを理解します。ハードチェックのため

そして使用===(データは同様variaableの型チェック)

function CheckPassword() { 
 
    var pword = document.getElementById("inpPassword").value; 
 

 
    if (pword == ""|| pword == null){ 
 
     alert("Please enter a password"); 
 
    } 
 
    else if (pword === 'newman') { 
 
     alert('congratulations.html', '_self'); 
 
    } 
 
    else 
 
    { 
 
     alert("Wrong password");  
 
    } 
 
}
<input type="" name="a" id="inpPassword"> 
 
<input type="button" onClick="CheckPassword()" value="check">

+0

これはあなたの場合に有効です。 –