0

私はいくつかのリンク (href) があるサイトを持っており、それらのリンクのそれぞれが一連の入力 type=checkbox (backened から生成されたもの) を示しています。リンクをクリックすると、10 個の入力、その他1つはdisplay:none;(ロード時にデフォルトでこれらのチェックボックスの初期セットのみがあります)になり、私が作成したjqueryを使用して、表示したいチェックボックスを切り替えることができます。

ここで、チェックしたものすべて、その名前と値を入れることができるオブジェクトを作成する必要があるため、ボタンをクリックすると、ajax を介してバックエンドに送信できます。

ajaxを呼び出して「値と名前を取得する」関数は次のとおりです。

function Bada() {

    var obj = $('.custom input[type="checkbox"]');


    var checkedCount =  obj.filter(':checked').length;
    var checkedInputs = obj.filter(':checked');
    console.log('The console is working');
    for(check in checkedInputs){
        console.log(checkedInputs[check].name);
        console.log(checkedInputs[check].value);
    } 
    delete window.checkedInputs;
    delete window.obj;

             $.ajax({
                 url: "/getItems",
                 type: "post",
                 data : { form: childCount, count: checkedCount },
                 success:  function(responseText){

                     alert('works');

                 }
             })
             //unfocus the button after the call to server, otherwise the marker stays in the text of the button as if that text is selected
             $('.button').blur();

    }

私が抱えている問題は次のとおりです。ページが読み込まれ、ビューに最初のチェックボックスがある場合(他のチェックボックスは表示されています:なし;)、すべてが機能し、チェックボックスの名前と値が取得されますが、すぐにリンクをクリックすると、他のチェックボックスのセットが表示され、前のチェックボックスがdisplay:none;に配置されます; ボタンをもう一度クリックすると、チェックされたチェックボックスの名前や値を取得する代わりに、以前のすべてのチェックボックスが表示されます(チェックされているものとチェックされていないもの、以前のものと現在のものも表示されているそれらの全リスト、しかし何かがチェックされているかチェックされていないかは完全に無視されます)。だから私はオブジェクトを作成し、それらの値を保持し、それらを上書きしないと思ったが、以前に新しい値を追加し、なぜ突然フィルターを無視するのか完全に困惑した. window.obj; ですが、何もしませんでした。ここで何が問題なのですか?そして、私が書いたことについて一般的なヒントがあれば、喜んで聞いてくれるでしょう:)ありがとう!

4

2 に答える 2

0

が非表示の場合、入力は送信されません。HTML の標準の一部です。送信されたフォームは、可視オブジェクトのみを入力します。

childCount が定義されていません。

于 2013-07-01T16:59:00.787 に答える