1

私は空を持っていますsendStatus[]。基本的に、ユーザーがチェックボックスをクリックしている間、アレイに存在するかどうかの値をチェックしています。それがない場合は、ユーザーがチェックボックスを再度クリックした場合に備えて、「add + this.value」で値を追加します。

「add+this.value」が含まれているかどうかを確認していsendStatus[]ますが、それが存在する場合はそれを削除し、「remove+this.value」として新しい値を追加しているため、「add+this.value」として値を取得するのは私だけですまたは、各チェックボックスで「remove + this.value」。

これを行うには、この関数を使用しましたが、機能しません:

var sendStatus = [];

var clearValues = function(newVal){
            console.log("calling",newVal);

        }

        $("form").on("click", ":checkbox", function(e){

            var el = $(this),parentClass = $(this).parent().hasClass("green"),label = $(this).parent();

            if(!parentClass){
                label.addClass("green");

                sendStatus = $.grep(sendStatus, function(value) {
                    return value != "remove" + el.val();
                });

                if ($.inArray("add" + el.val(), sendStatus) === -1) {
                    sendStatus.push("add" + el.val());
                }

            }else{
                label.toggleClass("red");

                sendStatus = $.grep(sendStatus, function(value) {
                    return value != "add" + el.val();
                });

                if ($.inArray("remove" + el.val(), sendStatus) === -1){
                    sendStatus.push("remove" + el.val());
                }
            }
        console.log(sendStatus);

        })  

誰もが私の機能を簡素化し、私が直面している問題を強調します..事前に感謝します。

4

2 に答える 2