Javascript Ajax成功函数第二次不起作用
Aim:通过json回调继续显示任何表单验证错误 问题:当我使用无效输入提交表单时,在div元素中显示错误消息。如果所有输入都有效,它将处理ajax请求并在div元素中显示一条成功消息。之后,表单重置,但模式保持打开状态。当我再次尝试验证中的输入时,不会显示任何错误消息。当我尝试测试有效输入时,仍然没有显示任何消息 简而言之:Ajax成功函数第二次不起作用 这是我的密码: 引导模式(我的表单输入所在的位置)Javascript Ajax成功函数第二次不起作用,javascript,php,jquery,twitter-bootstrap,codeigniter,Javascript,Php,Jquery,Twitter Bootstrap,Codeigniter,Aim:通过json回调继续显示任何表单验证错误 问题:当我使用无效输入提交表单时,在div元素中显示错误消息。如果所有输入都有效,它将处理ajax请求并在div元素中显示一条成功消息。之后,表单重置,但模式保持打开状态。当我再次尝试验证中的输入时,不会显示任何错误消息。当我尝试测试有效输入时,仍然没有显示任何消息 简而言之:Ajax成功函数第二次不起作用 这是我的密码: 引导模式(我的表单输入所在的位置) 我想我明白了。。。表单仍然有效,但消息不显示?如果是这样,请尝试下面的 您正在删除#me
我想我明白了。。。表单仍然有效,但消息不显示?如果是这样,请尝试下面的 您正在删除#message元素,而不是清除它。。。尝试:
$("#message").fadeTo(500, 0).slideUp(500, function() {
$(this).empty();
这样您就清空了#message元素,而不是完全删除它。它不起作用。错误消息仍然没有显示。有一个json响应,但我想知道为什么它没有显示在错误消息div element上。你是说,即使在第一次运行时(有错误),你也没有收到任何消息?如果是这样的话,我会在成功和失败区域中添加一个console.log(数据),并确保对象按照您的预期进行…不,我的意思是第二次出现错误消息或成功消息时没有显示第一次运行后DOM中是否仍有消息?您好,建议的$(this).empty()#消息在DOM中,但是当我单击按钮时,即使有json响应,也不会发生任何事情。
$(document).on('submit','#frm',function(e){
e.preventDefault();
var form = $('#frm');
$.ajax({
url: form.attr('action'),
type: 'POST',
dataType: 'json',
encode: true,
data: form.serialize(),
success: function(data) {
if (!data.success) {
if (data.errors) {
$('#message').html(data.errors).addClass('alert alert-danger');
}
} else {
reloadData();
$('#message').html("<span class='glyphicon glyphicon-ok'></span> " + data.message).removeClass('alert alert-danger').addClass('alert alert-success');
setTimeout(function() {
$("#message").fadeTo(500, 0).slideUp(500, function() {
$(this).remove();
});
}, 3000);
$('#frm')[0].reset();
}
}
});
});
$this->form_validation->set_rules('fname','First Name', 'required|trim');
$this->form_validation->set_rules('lname','Last Name', 'trim|required');
$this->form_validation->set_rules('age','Age', 'trim|numeric|required');
if($this->form_validation->run()===FALSE)
{
$info['success'] = false;
$info['errors'] = validation_errors();
}
else
{
$info['success'] = true;
$data = array(
"firstname" => $this->input->post('fname'),
"lastname" => $this->input->post('lname'),
"age" => $this->input->post('age'),
);
$this->Employee_model->save('ci_table', $data);
$info['message'] = 'Successfully saved data';
}
$this->output->set_content_type('application/json')->set_output(json_encode($info));
}
$("#message").fadeTo(500, 0).slideUp(500, function() {
$(this).empty();