jQuery:如果value等于0,则停止递减文本框值

时间:2013-04-22 04:04:13

标签: jquery function increment decrement

我拥有的:

我有一个只读文本框和两个链接。第一个链接将文本框的值递增1,而第二个链接将值递减1。

我需要什么:

我需要文本框值停止递减为零(我不想要负数)。

我的代码:

jQuery的:

jQuery(".increment").on('click',function(){
    jQuery(this).next(".amount input").val(parseInt(jQuery(this).next(".amount input").val())+1);
});

jQuery(".decrement").on('click',function(){
    jQuery(this).prev(".amount input").val(parseInt(jQuery(this).prev(".amount input").val())-1);
});

注意:使用.next和.prev,因为我有多个文本框。

HTML:

<!--This block of code is occurs more than once.-->
<td class="amount">
    <a href="#" class="increment"></a>
    <input type="text" readonly="readonly" value="0" />
    <a href="#" class="decrement"></a>
</td>

一个松散的猜测:

......关于减少......

// open onclick code here

    if (jQuery(this).prev(".amount input").val != "0"){

        // decrement code here

    }

// close onclick code here

的资源:

我的工作代码是根据此Stack Overflow答案建模的:https://stackoverflow.com/a/12209831/835950

...为方便起见,存在一个小提琴:http://jsfiddle.net/iMaverick/S3PLG/2/

2 个答案:

答案 0 :(得分:3)

Demo

$("#down").on('click',function(){
    var value = (parseInt($("#incdec input").val() , 10) - 1);
    $("#incdec input").val((value-1) < 0 ? 0 :(value -1));
});

答案 1 :(得分:1)

几乎:

$(document).ready(function() {
    var $textbox = $("#incdec input");

    $("#up").click(function(){
        var value = parseInt($textbox.val(), 10);

        $textbox.val(value + 1);
    });

    $("#down").click(function(){
        var value = parseInt($textbox.val(), 10);

        if (value > 0) {
            $textbox.val(value - 1);
        }
    });
});

HTML5还包含<input type="number">元素:

<input type="number" min="0" value="1" />