有很多方法可以完成您想要完成的任務。你在使用任何一種框架嗎?它可能是爲此而構建的。通常依靠標準函數或庫進行驗證並不是一個壞主意。
如果沒有,你將不得不自己做,並決定什麼時候你想它是服務器端(PHP)或用戶端(JavaScript)。無論你應該驗證它在服務器端捕獲任何惡意提交。
如果我們以您的示例爲例,它可能看起來像這樣用於服務器端PHP驗證,它將結果反饋給用戶。當心,這是真的,真的很沒有安全感,因爲它的使用$ _GET可能被修改等
<?php
$username = '';
$warning = '';
if(isset($_POST['submit'])){
if(!empty($_POST['username']) && strlen(trim($_POST['username'])) != 0){
$username = $_POST['username'];
if(strlen($username) > 8){
$warning = 'Only 8 characters allowed!';
}else{
header("Location: next_page.php");
}
}
else
{
$warning = 'Username is empty, please provide a valid name.';
}
}
?>
<form action="form.php" method="post">
<input type="text" name="username" value="<?php echo($username); ?>" />
<?php echo($warning); ?>
<input type="submit" name="submit" />
</form>
這個片段將保持在任何情況下,輸入是錯誤的,只能重定向到下一個頁面,如果數據是有效的。使用jQuery的一個例子可能是這樣的:
<html lang="en">
<head>
<meta charset="utf-8">
<title>event.preventDefault demo</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<form action="form.php" method="post">
<input type="text" name="username" id="formUsername" />
<span id="warning"> </span>
<input type="submit" name="submit" />
</form>
<script>
$(document).ready(function() {
$("form").submit(function(event) {
var username = $("#formUsername").val().trim();
if(username.length > 0 && username.length < 9){
$("form").submit();
}
else if(username.length > 8)
{
$("#warning").text("More than 8 characters.");
event.preventDefault();
}
else{
$("#warning").text("Empty username?");
event.preventDefault();
}
});
});
</script>
</body>
</html>
HTML5'pattern'屬性或者您可以使用JS。哦,'提交'類型! – user5173426
你是否看到一個名稱爲「submit」的表單元素?沒有?我也沒有。那麼你怎麼能期望在你的代碼中看到它呢? –
它也看起來像你混合javaScript和PHP(除非你寫了你自己的alrt()函數,但基於這個問題的簡單性,我非常懷疑這一點)。 –