2013-05-08 104 views
2

我有一個list.php中的HTML表單,它將文本框中的數據(下面的代碼中的「item」)提交給check.php。這個check.php驗證輸入的文本不是空的或只有空格。驗證之後,它將重定向到list.php以顯示輸入的文本。 list.php在下面。我只想在文本框中輸入有效文本時才啓用「添加」按鈕。我希望這個功能可以用php來完成,可能不會用javascript。 。如何根據文本驗證實時啓用提交按鈕?

我可以在表單中使用「禁用= \」禁用\」,但這並不能實時工作,根據驗證禁用

<form action="check.php" method="post"> 

<input name="item" type="text" size="25" autofocus="autofocus" /> 

<input type="submit" value="Add" id="add" /> 

</form> 
+4

你不能使用php,它的服務器端,其完成之前,用戶可以開始輸入。必須用JS \ ajax – 2013-05-08 00:32:28

+1

完成PHP可以**從不**用於實時客戶端功能。您必須使用客戶端腳本系統 - JS是當時的方式。 – Lukas 2013-05-08 00:50:33

+0

AJAX模糊線條,他可以通過AJAX調用'實時'php驗證 – 2013-05-08 00:52:54

回答

0

你說:

我想用php做這個功能,可能不用javascript。

不幸的是,如果你想要「實時」,那麼你將需要JavaScript。 ke AJAX調用您的PHP代碼來檢查驗證。

所以要麼A)你根本沒有在「實時」驗證,或者B)你在一種或另一種形式中使用JavaScript。讓我們假設你選擇B),使用JavaScript,並假設你所需要做的只是檢查一個空字符串或空白,然後你可以在JavaScript中完成所有這個客戶端,而不需要服務器調用完全可以實現真正的「實時」。

所以,這裏是我的解決方案,使用JavaScript(jQuery)而不依賴於服務器調用。這可能不適合您當前的實施,但如果是這樣,這可能會有所幫助。

的jsfiddle:
http://jsfiddle.net/VKfrw/1/

的JavaScript:

function hasWhiteSpaceOrEmpty(s) 
{ 
    return s == "" || s.indexOf(' ') >= 0; 
} 

function validateInput() 
{ 
    var inputVal = $("#myInput").val(); 
    if(hasWhiteSpaceOrEmpty(inputVal)) 
    { 
     //This has whitespace or is empty, disable the button 
     $("#add").attr("disabled", "disabled"); 
    } 
    else 
    { 
     //not empty or whitespace 
     $("#add").removeAttr("disabled"); 
    } 
} 

$(document).ready(function() { 
    $("#myInput").keyup(validateInput); 
}); 

HTML:

<!-- give this guy an ID --> 
<input id="myInput" name="item" type="text" size="25" autofocus="autofocus" /> 

此實現使用jQuery

0

如前所述,如果你想實時完成一些 JavaScript將需要。

但是我認爲這個問題實際上更適合於JavaScript。如果您需要將數據與數據庫中的數據交叉引用,PHP驗證可能很有用。 例如。在註冊表單中,檢查用戶尚未註冊輸入的電子郵件地址。

但在你的情況,根據你的意思是「有效的文本」,它可能更容易,更好地使用JavaScript。

有一些很棒的jQuery插件使得javascript驗證非常簡單。 http://docs.jquery.com/Plugins/Validation/validate