0

私は検索フォームを持っています(ここでフォームを見ることができます)。これは、検索を実行する前に、少なくとも1つのフィールドが入力されていることを確認するためにJavaScriptを使用します。

私はJavascriptが苦手なので、ご容赦ください。私は(優秀なStack Overflowユーザーの助けを借りて)検証を機能させることができ、次のコードを使用してフォームが検証に合格したら、送信ボタンを再度有効にすることができました。

    $(function(){
    $('#detailed-search-form').on('submit',function(e){
        e.preventDefault();
        var oneFilled = checkFields($(this));
        if(oneFilled) {
            $(this).unbind('submit').submit()
        } else {
            overlay();
        }
    });
});

問題は、送信ボタンを最初にクリックしても実際にはフォームが送信されず、ボタンが有効になるだけであるということです。フォームを送信する前に、もう一度クリックする必要があります。

うまくいけば、ボタンがクリックされたときにボタンを再度有効にするだけでなく、2回目のクリックを必要とせずにフォームを送信するためのフォームを取得する方法がありますか?

どんな助けでも大歓迎です!

前もって感謝します、

トム

4

1 に答える 1

1

あなたが書いたsubmitハンドラーは基本的に「ねえ、あなたが少なくとも1つのフィールドを提供しなかったなら、私はあなたに素敵な緑色のオーバーレイを促します、そうでなければ検索を続けましょう」と言うべきです-何もバインドを解除する必要はありません。

$(function(){
    $('#detailed-search-form').on('submit',function(e){

        if( !checkFields($(this)) ) {

            // if the form isn't valid, show overlay
            overlay();
            return false;

        } else {

           // else just continue with form action
           return true;

        }
    });
});
于 2012-08-23T11:21:52.173 に答える