1

私は1つのフォームを持っており、そのフォームには多くのチェックボックスがあり、チェックボックスは2つのカテゴリに分類されています。1つのカテゴリを選択すると、すべてのサブカテゴリのチェックボックスが自動的に選択され、選択したチェックボックスに従ってオプションをフィルタリングするフィルタとして[送信]ボタンを使用しました。

例:-私は次のようなチェックボックスを持っています

                               1]Alcoholic Drinks
                               2]--Beer 
                               3]--Rum
                               4]--Whiskey
                               5]Non Alcoholic Drinks
                               6]--Coffee
                               7]--Tea
                               8]--Juice  

チェックボックスを自動的に選択するためにjqueryを使用しています。ユーザーがAlcoholicにチェックマークを付け、そのサブチェックボックスが自動的に選択されたとします。

私のコード:-

        $('#Alcoholic').click(function() 
             {                                    

                  if( $(this).attr("checked"))
                 {  

                   $(this).parents('.min-form').find('label.Beer').removeClass('checked'); 
                   $(this).parents('.min-form').find('label.Wine').removeClass('checked'); 
                   $(this).parents('.min-form').find('label.Spirits').removeClass('checked'); 

                 }
                    else 
                 { 

                    $(this).parents('.min-form').find('label.Beer').addClass('checked');
                    $(this).parents('.min-form').find('label.Wine').addClass('checked');                   
                    $(this).parents('.min-form').find('label.Spirits').addClass('checked'); 
                 }                
                  return false; 
             });               

アルコール依存症をチェックすると、そのサブチェックボックスが自動的に選択されます。私の問題は、アクションのないフォームを送信すると、チェックボックスが自動的にオフになることです。これがどのように発生するのかわかりませんか?フォームタグにアクションがないフォームを送信すると、チェックボックスが自動的に選択解除されるのはなぜですか?

4

2 に答える 2

1

フォームにアクションがない場合は、ページをリロードするだけなので、チェックボックスは空になります。追加する場合

return false;

送信ボタンがクリックされたときにコーディングに追加すると、フォームが(何も送信されないように)送信されなくなり、ページが更新されなくなります。

于 2012-12-05T16:46:32.840 に答える
1

あなたのコードからすると、あなたはjQuery開発の初心者のようです。私が提案するのは、次のフローを使用することです。
クラスを追加するトップカテゴリのclass="top"
チェックボックスとサブカテゴリのチェックボックスを追加するclass="sub"

$(".top").click(function(){
    if($(this).is(':checked'))
    {
        $(this).find('.sub').attr('checked',true);
    }
    else
    {
        $(this).find('.sub').attr('checked',false);
    }
});


サブカテゴリのチェックボックスがオフになっている場合は、親カテゴリもオフにする必要があります。
そのためには、br/>チェックボックスのクリックイベントを処理する必要があります。これが機能することをclass="sub"願っています。:)そしてはい必ず持っていることを確認してくださいreturn false;

于 2012-12-20T13:25:42.207 に答える