2016-05-21 9 views
0

ユーザーがユーザー名とパスワードを入力してから、送信ボタンを押すとJavaScriptコードが実行され、文字列が入力されたことを検証します。結果が偽の場合は、alert("...")が表示されます。それが真の場合は、提出を続行する必要があります。

私は投稿を検証するためにリンクされたphpファイルを持って来るのではなく、index.phpにリンクしています(これは私がリンクしたファイルではありません)。間違っているか、時代遅れになっていて、私がそれを間違ってリンクした理由や場所がわかりません。

//// HTML ////

<html> 
<head> 

<script type="text/javascript"> 
    function validateThis() { 
     var username = document.getElementById('username'); 
     var password = document.getElementById('userpass'); 
     if ((username.value =="") || (password.value == "")) { 
     alert("Please enter your details"); 
     return false; 
     } 

    else { 
     return true; 
    } 
} 
</script> 
</head> 

<body> 
    <form id="myForm" name="myForm" action="loginValidate.php" 
    method="get" onSubmit="validateThis()"> 

    <input type="text" name="username"/> 
    <input type="password" name="userpass"/> 
    <input type="submit" value="Login"/> 

    </form> 

</body> 
</html> 

//// PHP ////

<?php 

$username = $_GET ['username']; 
echo "Hello".$username; 

?> 
+1

私たちは、あなたが何が起こっている投稿したものから、言うことができません。間違ったファイル名やひどく設定された.htaccessファイルなどがあるようです。しかし、あなたの説明が不明であるため、私たちは理解できません。 [**ここに質問する方法**](http://stackoverflow.com/questions/how-to-ask)をお読みください。 –

+0

は同じフォルダ内のphpファイルですか?スペルは正しいですか? – Jeff

+0

@Jeffうん、それを数回チェック!私は何が欠けているのか分からない。 –

答えて

2

あなたはID(getElementById)で要素をチェックしているとする必要がありますgetElementsByNameを使用してください。 またdocument.forms['myForm'].username.value == ""、すなわちを使用することができます。:

<html> 
<head> 
<script type="text/javascript"> 
function validateThis(){ 
    if(document.forms['myForm'].username.value == "") 
    { 
    alert("empty"); 
    return false; 
    } 
    return true; 
} 
</script> 
</head> 
<body> 
    <form id="myForm" name="myForm" action="" 
    method="get" onSubmit="validateThis()"> 
    <input type="text" name="username"/> 
    <input type="submit" value="Login"/> 
    </form> 
</body> 
</html> 
<?php 
echo !empty($_GET['username']) ? "Hello ". $_GET['username'] : ""; 
?> 

PHPFIDDLE DEMO

+1

良いスポット! 'getElementsByName'は配列/ノードリストを返すので、' [0] ' – Jeff

+0

を追加する必要があります。実際には、より良い解決策で答えを更新しました。フィードバックのためのtks;) –

+0

...今私は私の奇妙なコメントと愚かに見える... haha​​ – Jeff