0

i got a jquery function that controls that all the required fields of my form are filled and it cancels submission if one of the required fields are empty.

Canceling the form submission works fine, problem is that when i submit my form after a failed submission it stills cancels the form submission, when it should allow the submit because all the form is filled correctly, here is the code:

-Cancel is a bool that indicates if all the form fields are filled.

    if (cancel) 
    {
        $('#form_login').submit(function () 
        { 
            return false;   
        }); 
    }
    else
    {

        $('#form_login').submit(function () 
        { 
            return true;
        }); 
    };

what am i doing wrong ??

thanks

4

4 に答える 4

1

You better call your validation code from within the submit method. For example, a method that does some validation and return true or false. You can return that value as the submit method return value.

For example:

$('#form_login').submit(function ()  
{  
   return isMyFormValid();    
});

function isMyFormValid(){
  //return true or false depending on some conditions.
}
于 2012-06-11T11:00:28.757 に答える
0

問題は、フォームの送信イベントに関数を複数回アタッチしていることです。初めて検証が失敗するとreturn false;メソッドがアタッチされ、後で別の関数をアタッチした場合でも(検証が成功した場合)、フォームが送信されるたびにこの関数が呼び出されます。

あなたがしたいことは:

$('#form_login').submit(function() {
    //define the value of 'cancel' here
    return cancel;
}

送信イベントにすでに関数をアタッチしていて、それをオーバーライドする場合は、最初に、すでにアタッチされている関数を削除する必要があります。

$('#form_login').off('submit');

次に、新しい関数をアタッチします。

于 2012-06-11T11:13:26.353 に答える
0
if(cancel) {
   $('#form_login').submit();
} else {
  return false;
}
于 2012-06-11T11:04:41.437 に答える
0

How about trying what the api suggests:

$('#form_login').submit(function () 
{ 
        if (cancel) {return false;} 
        return true;    
}); 
于 2012-06-11T11:23:21.197 に答える