0

ASP.Net テキスト ボックスで Javascript のインクリメンタとデクリメンタを使用して、数値を上げようとしています。デフォルトのテキストボックスは 0 に設定されています。

ASP.Net テキスト ボックスの値を増減するために Javascript を起動する 2 つの div を追加します。値は変更されますが...

また、Javascript が値が 0 未満になるのを防ぐと思われる問題も抱えています。ただし、0 未満にデクリメントするとテキスト ボックスが空白になり、インクリメントしようとすると NaN 値が得られます。私の計画は、値が「0」になったときに減少ボタンを非表示にすることです。どんな助けでも大歓迎です。ASP.Net テキストボックスで Javascript/jQuery インクリメンタ/デクリメンタを使用することは可能ですか?

値が '0' に達したときにデクリメンタ ボタンを非表示にし、値が '0' を超えたときに再表示する方法についてのポインタ。さらに、ASP.Net テキストボックスで JavaScript のインクリメント/デクリメントを使用できる場合。

前もって感謝します。

以下は私のJavascriptです:

  if (Modernizr.mq("screen and (max-width:767px)")) {
        if ($('.product-variant-list td span.quantity input.numerictextboxtext:not([disabled])')) {
            $('input.numerictextboxtext:not([disabled])').parent().append('<div class="incButton button">+</div><div class="decButton button">-</div>');
        }

        if ($('input.numerictextboxtext').val() == 0) {
            $(".decButton").hide();
        }
        if ($('input.numerictextboxtext').val() >= 1) {
            $(".decButton").show();
        }

        $(".button").click(function () {
            var $button = $(this);
            var oldValue = $button.parent().find("input.numerictextboxtext").val();

            //TODO: See if you can show and hide button on based on value of textbox
            if(oldValue == 0){
                $(".decButton").hide();
            }
            if (oldValue >= 1) {
                $(".decButton").show();
            }

            if ($button.text() == "+") {
                var newVal = parseFloat(oldValue) + 1;

            } else {
                // Don't allow decrementing below zero - supposedly. But this does not work in our case
                if (oldValue >= 1) {
                    var newVal = parseFloat(oldValue) - 1;
                }
            }
            $button.parent().find("input.numerictextboxtext").val(newVal);
        });//End button click
    }//End Modernizr check
4

2 に答える 2

1

あなたの問題の 1 つがここにあると思います。問題がどこにあると思うかを明確にするために、フォーマットを少し変更しました。

if ($button.text() == "+") {
   var newVal = parseFloat(oldValue) + 1;
} else {
   // Don't allow decrementing below zero - supposedly. But this does not work in our case
   if (oldValue >= 1) {
     var newVal = parseFloat(oldValue) - 1;
   }
}
$button.parent().find("input.numerictextboxtext").val(newVal);

newValif句と句内で宣言されていますelse。ただし、これらの句のいずれかの外にある式で使用します。そのnewValため、関数で使用する時点でval()は定義されていません。

定義した場所で宣言してみてくださいoldVal

   $(".button").click(function () {
        var $button = $(this);
        var oldValue = $button.parent().find("input.numerictextboxtext").val();
        var newValue = oldValue; // Declaring the variable here gives it 
                                 // the same scope as oldValue.  Giving it 
                                 // oldValue as a default value means that it
                                 // will have a value even if not assigned to again.

        //TODO: See if you can show and hide button on based on value of textbox
        if(oldValue == 0){
            $(".decButton").hide();
        }
        if (oldValue >= 1) {
            $(".decButton").show();
        }

        if ($button.text() == "+") {
            newVal = parseFloat(oldValue) + 1;
        } else {
            // Don't allow decrementing below zero
            if (oldValue >= 1) {
                newVal = parseFloat(oldValue) - 1;
            }
        }
        $button.parent().find("input.numerictextboxtext").val(newVal);
    });//End button click
于 2013-03-29T18:30:35.917 に答える
0

私たちの質問への答えはここにあります。これが他の人に役立つことを願っています。

     if (Modernizr.mq("screen and (max-width:767px)")) {
        if ($('.product-variant-list td span.quantity input.numerictextboxtext:not([disabled])')) {
            $('input.numerictextboxtext:not([disabled])').parent().append('<div class="incButton button">+</div><div class="decButton button">-</div>');
        }
        if ($('input.numerictextboxtext').val() == 0) {
            $(".decButton").hide();
        }
        $(".button").click(function () {
            var $button = $(this);
            var oldValue = $button.parent().find("input.numerictextboxtext").val();
            var newVal = oldValue;
            //Hide .decButton for oldValue
            if (newVal == 0 || oldValue == 0) {$button.parent().find(".decButton").hide(); oldValue = 0}
            else {$button.parent().find(".decButton").show();}
            if ($button.text() == "+") { var newVal = parseFloat(oldValue) + 1;} else {
                // Don't allow decrementing below zero
                if (oldValue >= 1) {var newVal = parseFloat(oldValue) - 1;}
            }
            //Hide .decButton for newVal
            if (newVal == 0) {$button.parent().find(".decButton").hide();}
            else {$button.parent().find(".decButton").show();}
            $button.parent().find("input.numerictextboxtext").val(newVal);
        });//End button click
    }//End Modernizr check
于 2013-03-29T22:01:24.043 に答える