2011-03-05 28 views
0

我知道如何在提交表單時驗證基本輸入(文本)。然而,當我離開網頁時,我將如何驗證輸入(文本)。即使使用JS,由於「表單操作」屬性,我無法讓它保持在同一頁面上。在移動頁面時在php中驗證輸入文本

HTML代碼輸入並提交

<form name="form1" action="second.php" **onsubmit="return error()"** method="post"> 
<input style="" name="hall" type="text"><br> 
<input name="Move" style="height: 23px" type="submit" value="Move"> 
</form> 

PHP代碼來驗證

<?php 
if (isset($_POST['Move'])) { 
if(($_POST['hall']) != "Hallway") 
{ 
    echo "Not among available rooms"; 
} 
?> 

而且這是JS代碼

<script type="text/javascript"> 
function error() 
{ 
    var x=document.forms["form1"]["hall"].value 
    if (x==null || x=="" || x!="next") 
    { 
     alert("Wrong entry. Try again!!!"); 
     return false; 
    } 
} 
</script> 

回答

0

下面的代碼工作我的服務器上,前提是存在second.php頁面。 (順便說一句,我在價值後加了一個;,但它似乎沒有它)。

您是否在表單之後放置了js腳本?也許它可能會影響。

<html> 

<script type="text/javascript"> 
function error() 
{ 
    var x=document.forms["form1"]["hall"].value; 
    if (x==null || x=="" || x!="next") 
    { 
     alert("Wrong entry. Try again!!!"); 
     return false; 
    } 
} 
</script> 


<body> 

<form name="form1" action="second.php" onsubmit="return error()" method="post"> 
<input style="" name="hall" type="text"><br> 
<input name="Move" style="height: 23px" type="submit" value="Move"> 
</form> 


</body> 
</html> 
0

其他的事情我能想到的: - 您是否有阻止該腳本運行網頁上的任何JS錯誤

?它也適用於我的服務器。

- 您是否有另一個具有相同名稱的HTML元素?

- 我假設**是爲了強調你的代碼中的那個區域。如果沒有,當然,他們需要被刪除。

唯一能阻止你的「返回false」工作的是如果你有某種JavaScript錯誤會導致腳本無法運行。

如果您的網頁上有其他代碼,請將其張貼,我們會看看!