ajax响应不是带有jquery验证的ajax表单提交

时间:2014-06-11 04:54:30

标签: jquery ajax codeigniter jquery-validate smarty

我的代码是这样的形式submition正在使用jquery表单验证throgh ajax但响应不起作用..

我的ajax代码:

$("#save_form4").validate({ 
        rules: {
            name: {
                required: true          
            },
            min_salary:{
                required: true,
                number: true
            }
        },
        messages: {
            name: {
                required:  "Job Title is required."                 
            },
            min_salary:{
                required: "Min Salary is required.",
                number: "Enter Valid Amount."
            }
        },
        // the errorPlacement has to take the table layout into account
        errorPlacement: function(error, element) {
            if ( element.is(":radio") )
                error.insertAfter( element.parent() );
            else if ( element.is(":checkbox") )
                error.insertAfter( element.next() );
            else{
                if(element.is("textarea"))
                error.insertAfter(element.next());
            else
                error.insertAfter( element );
            }               
        },
        submitHandler: function(form) {
            var formVars = $(form).serialize();
            $(form).ajaxSubmit({
                type:     'POST',
                url:     '{/literal}{$site_url}vacancies/vacancy_job/{$id}{literal}',
                async : false,
                data:     formVars,
                cache: false,
                success: function(data)
                { alert('hjkhjh');
                      $('#job_panel').css('display','none');
                      $('#job').html(data);
                },
                error : function(){
                    alert('error');
                }
            });
            return false;
        }

    });

这里的ajax响应任何警报都没有工作,但它进入空缺控制器并保存数据....任何人都请帮助我。

1 个答案:

答案 0 :(得分:0)

我不是100%肯定,但似乎你没有'通过AJAX但使用标准POST发送数据,以及数据存储在服务器端的原因。

我将您的代码复制到我的表单中,并且数据是通过POST而不是通过AJAX发送的。问题是你使用ajaxSubmit jQuery Form Plugin的一部分,可能你还没有将这个文件添加到你的JS文件和html文档中。

但我想这个插件并不是必需的。

当你改变时:

$(form).ajaxSubmit({

进入

$.ajax({

当然你重新加载页面,你应该看到你想要的Javascript警报。我在测试网站上的代码中更改了它,并显示了Javascript警报。