0

フィールドが有効かどうかを確認する必要があるため、フォーム送信を送信前にインターセプトしたい Javascript/JQuery コードを書いています。

したがって、デフォルトのイベントが発生しないようにブロックし、必要なものを確認してから、問題がなければ再度イベントを発生させます。問題は、これがまったく同じ機能をトリガーし、無限ループに陥ることです。

これを回避する方法はありますか?回避策を考えることができますが、結局のところ、それらは回避策であり、最も洗練されたソリューションではありません。

これが私のコードです:

            $("#register_form").submit(function(event)  {
                event.preventDefault();
                console.log('form submit attempt');
                checkUsername();
                $("#register_form").submit();
            });
4

1 に答える 1

0

エラーが発生した場合にフォームの送信を停止できるようにするにreturn falseは、関数からする必要があります。checkUsername()関数が bool を返すことを確認する必要があります。

これを試して...

$("#register_form").submit(function(event)  {                    
    if(checkUsername())
        return true;

    return false;       

});

またはさらに良い...

$("#register_form").submit(function(event)  {                    
        return checkUsername();                    
});
于 2013-06-22T20:44:13.850 に答える