Javascript 5秒后使div消失,验证错误消息
我有一个名为“.error”的div,如果提交了一个注册表,并且它有错误,则会出现,否则不会出现。我试图创建一个包含jquery的javascript语句,jquery使用if结构Javascript 5秒后使div消失,验证错误消息,javascript,php,jquery,html,css,Javascript,Php,Jquery,Html,Css,我有一个名为“.error”的div,如果提交了一个注册表,并且它有错误,则会出现,否则不会出现。我试图创建一个包含jquery的javascript语句,jquery使用if结构 For example if error div is visible after submit button is clicked remove the error div after several seconds end if statement 任何帮助都将不胜感激 谢谢 编辑:这是我的实际代码,我
For example
if error div is visible after submit button is clicked
remove the error div after several seconds
end if statement
任何帮助都将不胜感激
谢谢
编辑:这是我的实际代码,我已经尝试实现了提供的一些示例,但到目前为止都没有成功
<script>
$(document).ready(function(){
var hideError = function () {
$(".error").hide();
};
$("registration-form").submit(function () {
setTimeout(hideError, 5000);
});
});
</script>
<?php
$validation_errors = '';
$proc_errors = '';
if (isset($_POST['register'])) { // User submitted registration form
require_once "formvalidator.php";
$validator = new FormValidator();
$validator->addValidation("new-username","req","Please enter a username");
$validator->addValidation("new-username","minlen=5","Username cannot be less than 5 characters");
$validator->addValidation("new-username","maxlen=25","Username cannot be more than 25 characters");
$validator->addValidation("new-username","alpha","Username must not contain spaces, numbers or strange characters");
$validator->addValidation("new-password","req","Please enter a password");
$validator->addValidation("new-password","minlen=5","Password must be at least 5 characters!");
$validator->addValidation("new-password","maxlen=25","Password cannot be more than 25 characters");
$validator->addValidation("new-password2","eqelmnt=new-password","The confirmation password does not match");
$validator->addValidation("new-password2","req","Please enter the confirm password field");
$validator->addValidation("email","email","Please enter a valid e-mail address");
$validator->addValidation("email","req","Please enter a valid e-mail address");
$validator->addValidation("forename","req","Please enter your forename");
$validator->addValidation("surname","req","Please enter your surname");
$validator->addValidation("securityquestion","dontselect=--Select One--","Please choose a security question");
$validator->addValidation("securityanswer","req","Please enter a security answer");
$validator->addValidation("securityanswer","minlen=5","Security answer must be more than 4 characters");
if($validator->ValidateForm()) {
//If the validations succeeded, proceed with form processing
$formproc = new regProcessor();
$res = $formproc->ProcessForm();
if($res == "SUCCESS") {
header("Location: registrationsuccess.php"); /* Redirect browser */
exit();
} else {
$proc_errors = '<div class="error">'.$res.'</div>';
}
} else {
//Validations failed. Display Errors.
$error_hash = $validator->GetErrors();
$validation_errors = '';
foreach($error_hash as $inpname => $inp_err) {
$validation_errors .= '<div class="error">'.$inp_err.'</div>';
}
}
}
?>
$(文档).ready(函数(){
var hideError=函数(){
$(“.error”).hide();
};
$(“注册表”)。提交(函数(){
设置超时(hideError,5000);
});
});
使用Javascript的设置超时
功能,因此:
setTimeout(function() {
// remove your error div
}, 5000);
使用Javascript的
setTimeout
函数,从而:
setTimeout(function() {
// remove your error div
}, 5000);
要隐藏div,请创建一个函数,如下面使用的函数 (即使错误div已经隐藏,您也可以安全地调用它) 在表单提交时调用它(使用jQuery
submit
事件处理程序),但延迟5秒后通过调用调用
这意味着,如果用户通过单击“提交”按钮提交表单,以及通过按键盘上的Enter键提交表单,则任何验证消息都将被隐藏。要隐藏div,请创建一个函数,例如下面使用的函数 (即使错误div已经隐藏,您也可以安全地调用它) 在表单提交时调用它(使用jQuery
submit
事件处理程序),但延迟5秒后通过调用调用
这意味着,如果用户通过单击“提交”按钮提交表单,或者通过按键盘上的Enter键提交表单,则任何验证消息都将被隐藏。例如:
<div id="message"></div>
<button type="submit" onclick="message();">submit</button>
function message() {
$('#message').show();
setTimeout(function() { $('#message').hide(); }, 5000);
}
提交
函数消息(){
$(“#消息”).show();
setTimeout(function(){$('#message').hide();},5000);
}
例如:
<div id="message"></div>
<button type="submit" onclick="message();">submit</button>
function message() {
$('#message').show();
setTimeout(function() { $('#message').hide(); }, 5000);
}
提交
函数消息(){
$(“#消息”).show();
setTimeout(function(){$('#message').hide();},5000);
}
如果您已使用可见性隐藏此消息,则此操作将有效。如果未隐藏此消息,请相应地更改相关部分,如果您需要帮助,请询问
如果您已经使用可见性隐藏了此消息,那么这将起作用。如果没有,则相应地更改相关部分。如果您需要帮助,请询问是否需要更具jQuery风格的方法,然后扩展jQuery:
定义jQuery扩展函数:
$.fn.delayedHide = function(delay) {
var that = this;
window.setTimeout(function () {
that.hide();
}, delay || 5000);
return that;
}
现在假设您有以下HTML:
<div class="msg">MSG1</div>
<div class="msg msg-err">MSG2 (ERR)</div>
<div class="msg">MSG3</div>
<div class="msg msg-err">MSG4 (ERR)</div>
完整示例:如果您想要一种更为jQuery惯用的方法,那么扩展jQuery:
定义jQuery扩展函数:
$.fn.delayedHide = function(delay) {
var that = this;
window.setTimeout(function () {
that.hide();
}, delay || 5000);
return that;
}
现在假设您有以下HTML:
<div class="msg">MSG1</div>
<div class="msg msg-err">MSG2 (ERR)</div>
<div class="msg">MSG3</div>
<div class="msg msg-err">MSG4 (ERR)</div>
完整示例:为了平稳过渡,您可以在淡入后延迟使用jQuery/函数
$('.error').fadeIn(600, function() {
$(this).delay(4000).fadeOut(600);
});
为了平稳过渡,可以在淡入后延迟使用jQuery/函数
$('.error').fadeIn(600, function() {
$(this).delay(4000).fadeOut(600);
});
这不是jQuery function.True。编辑以反映。这不是jQuery function.True。编辑以反映。当然,你可以用删除来代替隐藏(sry,写小提琴时忘记了你的确切需要)^^为完整的示例干杯,非常感谢!提交表单后,php将生成div,这似乎会引起麻烦。那么,只需将此解决方案与$(“表单”).submit(函数(){/*…*/})结合起来即可代码>其他答案的建议。我在这里发布的只是对其他解决方案的一些惯用改进。当然,你可以用移除代替隐藏(sry,写小提琴时确实忘记了你的确切需要。)为完整的示例干杯,非常感谢!提交表单后,php将生成div,这似乎会引起麻烦。那么,只需将此解决方案与$(“表单”).submit(函数(){/*…*/})结合起来即可代码>其他答案的建议。我在这里发布的只是对其他解决方案的一些惯用改进。我感谢所有的反馈,我将尝试一下已经说过的话,div是用PHP生成的,它们在HTML上是不存在的。如果div是由PHP生成的(即在服务器上)这难道不意味着当页面最初呈现给浏览器时,它们就存在了吗?看,这也是我的想法,这促使我采用这种方法删除它。php下面四分之三的代码是div的生成位置,它以if($res==“SUCCESS”)开头。{我感谢所有的反馈,我会尝试一下,div是用php生成的,它们在HTML中不存在。如果div是由php生成的(即在服务器上)这难道不意味着它们在页面最初呈现到浏览器时就存在吗?看,我也是这么想的,这也促使我采用这种方法删除它。php下面四分之三的代码就是div的生成位置,它以if($res==“SUCCESS”)开头{我会给它一个冲击波,它看起来和我现在看到的非常相似。我会给它一个冲击波,它看起来和我现在看到的非常相似