不允许该值转到=< 0输入

时间:2015-07-24 18:30:51

标签: javascript jquery

我有以下代码让用户按下减号并达到0,-1,-2,... -999等值:

http://jsfiddle.net/yrn58egv/

HTML

-w

JAVASCRIPT

<table class="table table-condensed table-hover table-striped">
    <thead>
        <tr>
            <th class="shrink">TICKET</th>
            <th class="shrink">VALUE</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Y00001</td>
            <td>
                <div class="input-group">   <span class="input-group-btn">
                        <button class="btn btn-default btn-minuse" type="button">-</button>
                    </span>

                    <input type="text" name="Y00001" class="form-control text-center" maxlength="3" value="">   <span class="input-group-btn">
                        <button class="btn btn-default" type="button">+</button>
                    </span>

                </div>
            </td>
        </tr>
        <tr>
            <td>Y00002</td>
            <td>
                <div class="input-group">   <span class="input-group-btn">
                        <button class="btn btn-default btn-minuse" type="button">-</button>
                    </span>

                    <input type="text" name="Y00002" class="form-control text-center" maxlength="3" value="">   <span class="input-group-btn">
                        <button class="btn btn-default" type="button">+</button>
                    </span>

                </div>
            </td>
        </tr>
        <tr>
            <td>Y07851</td>
            <td>
                <div class="input-group">   <span class="input-group-btn">
                        <button class="btn btn-default btn-minuse" type="button">-</button>
                    </span>

                    <input type="text" name="Y07851" class="form-control text-center" maxlength="3" value="">   <span class="input-group-btn">
                        <button class="btn btn-default" type="button">+</button>
                    </span>

                </div>
            </td>
        </tr>
        <tr>
            <td>Y71710</td>
            <td>
                <div class="input-group">   <span class="input-group-btn">
                        <button class="btn btn-default btn-minuse" type="button">-</button>
                    </span>

                    <input type="text" name="Y71710" class="form-control text-center" maxlength="3" value="">   <span class="input-group-btn">
                        <button class="btn btn-default" type="button">+</button>
                    </span>

                </div>
            </td>
        </tr>
    </tbody>
</table>

输入如何不让值变为=&lt; 0?因此,如果输入中没有任何内容并按减号或加号,则该值将为1.如果为1并按减号,则应保持为1。

5 个答案:

答案 0 :(得分:1)

$('.btn').on('click', function() {
  var $input = $(this).closest('.input-group').find('input');
  var val = +$input.val();
  val = ($(this).hasClass('btn-minuse') ? val - 1 : val + 1) || 0;
  $input.val((val < 0 ? val + 1 : val)) 
});

答案 1 :(得分:1)

在设置输入值字段之前,您需要做的是检查值是否为0。

$('.btn').on('click', function() {
  var $input = $(this).closest('.input-group').find('input');
  var val = +$input.val();
  var newVal = $(this).hasClass('btn-minuse') ? val - 1 : val + 1;
  $input.val(newVal <= 0 ? 0 : newVal);
});

在上面的代码中,我将传递给函数的值设置为新变量newVal,然后在调用函数之前检查该变量。您的“|| 0”代码不会执行任何操作,因为只是ORing以查看上一部分是否返回了值。

JSFiddle:http://jsfiddle.net/bdb4dnpp/

答案 2 :(得分:0)

您需要编写代码来执行您用英语编写的内容。例如:

var newval = ($(this).hasClass('btn-minuse') ? val - 1 : val + 1)
if (newval < 0)
    { newval = 1; }

答案 3 :(得分:0)

改变这个:

$input.val(($(this).hasClass('btn-minuse') ? val - 1 : val + 1) || 0);

$input.val(($(this).hasClass('btn-minuse') ? (val - 1 > 0? val - 1: 1) : val + 1);

要确保用户无法输入负值,请在所有输入中添加no-neg

<input type="text" name="Y00001" class="no-neg" ...

并添加

(".no-neg").change(function() {
    var current = parseInt(this.value, 10);
    this.value = current > 0? current: 1;
});

更新了fiddle

答案 4 :(得分:0)

$('.btn').on('click', function() {    
   var $input = $(this).closest('.input-group').find('input');
   var val = +$input.val();

   // add this section 
   if(val <= 0){
       $input.val('1');
       return;
   }

   $input.val(($(this).hasClass('btn-minuse') ? val - 1 : val + 1) || 0);      
});