1

試行してエラーが発生しましたが、フィールドは、入力したパーセンテージが 100% でな​​い場合にのみ表示されます。たとえば、最初のパーセンテージ入力フィールドに 22% を入力し、2 番目のパーセンテージ入力フィールドに 78% を入力すると、アラートはパーセンテージが 100% に達したことを示す必要があります。 100%まで

                $(document).ready(function () {

                $(document).on("focusout", ".ration, .percentage", function () {

                    var count = $('.newtextbox').length;

                    if (count < 5) {

                        $(content).append("<p><input type='text' class='newtextbox' id='ingredient" + count + "' placeholder='ingredient name'/> <input type='text' class='costPerTon' placeholder='cost per ton'/> <input type='text' class='percentage' placeholder='percent applied'/> <input type='button' value='Remove' id='removeButton" + count + "'/></p>");

                    } else {

                    alert('You have maximum elements allowed.')

                    }

                    $("input[type = 'button']").click(function () {

                    $(this).parent().remove();

                    });
                });
            });

http://jsfiddle.net/z2FdP/

4

4 に答える 4

0

特定の例/フィドルに答えを適用する:

$(document).ready(function () {

    $(document).on("focusout", ".ration, .percentage", function () {

        var count = $('.newtextbox').length;

        var percent = 0;
        $(".percentage").each(function (i) {
            var pc = parseInt($(this).val().replace(/%/g, ""));

            if (!isNaN(pc)) {
                 percent += pc;
            }        
        });

        if (percent == 100)
        {
            alert('Reached 100%');
        }
        else if (percent > 100)
        {
            alert('Oops, you are over 100%');
        }
        else if (count < 5) {

            $('#content').append("<p><input type='text' class='newtextbox' id='ingredient" + count + "' placeholder='ingredient name'/> <input type='text' class='costPerTon' placeholder='cost per ton'/> <input type='text' class='percentage' placeholder='percent applied'/> <input type='button' value='Remove' id='removeButton" + count + "'/></p>");

        } else {

            alert('You have maximum elements allowed.')

        }

        $("input[type = 'button']").click(function () {

            $(this).parent().remove();

        });
    });
});

新しいフィドル: http://jsfiddle.net/F76Tk/

于 2013-07-04T11:32:34.950 に答える
0

私が理解しているように、あなたの問題は、すべての入力に入力された合計 % 数を数える方法です。

これを行う方法は次のとおりです。

var totalPercents = 0;

$("input").each(function (i, input) {
    var percent = $(input).val().replace(/%/g, "");

    if (!isNaN(percent)) {
         totalPercents += parseInt(percent);
    }

});

フィドル

それをあなたのコードに適用する方法を理解できると確信しています:)

于 2013-07-04T11:20:55.690 に答える