关于Form,Ajax

时间:2014-07-16 15:12:26

标签: javascript jquery ajax forms

我有一个带有ID hello的HTML表单

我有像这样的ajax

jQuery(document).ready(function($) {
    $("#hello").submit(function(){

        var $form = $(this);
        var serializedData = $form.serialize();


        request = $.ajax({
            url: "/blog/ajaxphp/registration_check.php",
            type: "post",
            data: {formData:serializedData},
            datetype: "JSON"
        });
        request.done(function (response, textStatus, jqXHR){
            console.log("hellosss");
            if(jQuery.parseJSON(response).success==undefined){
                $form.unbind('submit').submit();
            }else{
                return false;
            }
        });
        request.fail(function (jqXHR, textStatus, errorThrown){
            console.log("error");
        });

     return false;

    });
});

但是“提交”按钮无效。我的意思是如果我按两次就行了..

记录此

未捕获的TypeError:对象不是此行中的函数$ form.unbind(' submit')。submit();

问题:

  1. 如果jQuery.parseJSON(response).success==undefined为true,我如何使表单启用提交,否则禁用要提交的表单。
  2. 如何在执行ajax进程时禁用ajax按钮。

1 个答案:

答案 0 :(得分:4)

$("#hello").submit(function(){
    return false;  <-- You are exiting the function right away
    //nothing runs here

使用evt.preventDefault();

$("#hello").submit(function(evt){
    evt.preventDefault();

或者如果你真的想要使用return,那么它就是BOTTOM。

异步Ajax调用中的return false也不做任何事情。从异步调用中返回任何内容都是不可能的。

修改

你有一个错字

if(jQuery.parseJSON(response).sucess==undefined){  <-- that is not how you spell `success`

Double Edit,看看是否将其分成两部分。

$form.unbind('submit');
$form.submit();