下面是服務器端和客戶端驗證表單。在這裏,我使用div id=er>
顯示錯誤消息未能符合要求。現在div
er
將永遠在那裏造成我的造型問題。我希望錯誤div
僅在出現錯誤時纔會顯示,否則不會顯示。如何在沒有錯誤時隱藏`div`攜帶錯誤信息?
<script type="text/javascript">
$(document).ready(function() {
$('#submit').click(function() {
var firstname = document.getElementById('fn').value;
var lastname = document.getElementById('ln').value;
var password = document.getElementById('pswd').value;
if (firstname.length < 2 || firstname.length > 11) {
$('#er').html('First name must be between 1 to 11 characters long');
return false;
}
else if (lastname.length < 2 || lastname.length > 11) {
$('#er').html('Last name must be between 1 to 11 characters long');
return false;
}
else if (password == "") {
$('#er').html('Fill your password');
return false;
}
});
});
</script>
<?php
error_reporting('E_ALL^E_NOTICE');
if(isset($_POST['reg'])){
$fn = ucfirst($_POST['fname']);
$ln = ucfirst($_POST['lname']);
$pswd = $_POST['password'];
if(strlen($fn) < 2 || strlen($fn) > 11) {
$er = 'First name should be 2 to 11 characters long';
}
elseif(strlen($ln) < 2 || strlen($ln) > 11) {
$er = 'Last name should be 2 to 11 characters long';
}
elseif($pswd == "") {
$er = 'Enter your password';
}
else{
$pswd = password_hash($pswd, PASSWORD_DEFAULT);
$stmt = $db->prepare("INSERT INTO users (first_name,last_name,password) VALUES (:first_name,:last_name,:password)");
$stmt->execute(array(':first_name'=>$fn,':last_name'=>$ln,':password'=>$pswd));
}
<form action="register.php" method="post" class="register">
<input type="text" name="fname" id="fn" placeholder="First Name"/>
<input type="text" name="lname" id="ln" placeholder="Last Name"/>
<input type="password" name="password" id="pswd" placeholder="Password"/>
<input type="submit" id="submit" name="reg" value="Create">
<div id='er'><?php echo $er; ?></div>
</form>
嘗試過這樣的事情
<?php
if ($er!=""){
echo "<div class='er'>".er."</div>";
}
?>
但這並沒有工作,可能是因爲了Javascript,顯示了通過同一div
錯誤,以便了解如何隱藏錯誤div
時,他們是沒有錯誤。
把一個如果圍繞格?如果它顯示錯誤,如果它不是,那麼它不會 – Tredged
因此將其設置爲不顯示任何內容。如果有錯誤,請點擊它。 – epascarello