2016-05-21 39 views
0

我試圖創建一個登錄名,用戶輸入他們的用戶名和密碼,然後點擊提交按鈕JavaScript代碼運行驗證字符串已被輸入。如果結果是錯誤的,它應該調出alert("...")如果它是真的,它應該繼續提交。

但是,當我去驗證提交,而不是把它帶到鏈接的php文件,它把我帶到index.php(這不是我已經鏈接它的文件)給我一個404錯誤,說鏈接是錯誤或過時,我不明白爲什麼或在哪裏我錯誤地鏈接它。

//// 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 Yep,檢查了幾次!我看不到有什麼缺失。 –

回答

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

...現在我看起來很傻我的奇怪的評論...哈哈 – Jeff