文本框值不会变为负值

时间:2016-04-30 06:02:18

标签: javascript jquery

$(document).ready(function() {
     var label = parseInt($("#label1").html());
     alert(label);
     $("#Incre").click(function() {
         $("#number").val(parseInt($("#number").val()) + label);
     });
     $("#Decre").click(function() {
         $("#number").val(parseInt($("#number").val()) - label);
     });
 });
<label id='label1'>50</label>
<input id='number' value=0></input>
<button  id='Incre'>Incre</button>
<button  id='Decre'>Decre</button> 

我有这个代码它正在工作。但是当文本框值为零时。如果我点击减量按钮,文本框值将变为负值。如何控制这个。

3 个答案:

答案 0 :(得分:0)

检查更新时的值,如果值小于0,则设置为上一个值

&#13;
&#13;
$(document).ready(function() {
  var label = parseInt($("#label1").html()),
    $num = $("#number");
  $("#Incre").click(function() {
    $num.val(function(i, v) {
      return parseInt(v) + label
    });
  });
  $("#Decre").click(function() {
    $dec = $(this);
    $num.val(function(i, v) { // use callback to update based on old value
      var res = parseInt(v) - label; // get the decremented value
      return res < 0 ? v : res; // return old value if -ve value reached
    });
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<label id='label1'>50</label>
<input id='number' value=0></input>
<button id='Incre'>Incre</button>
<button id='Decre'>Decre</button>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以使用此代码: -

<script>
    $(document).ready(function() {
     var label = parseInt($("#label1").html());
     alert(label);
     $("#Incre").click(function() {
         $("#number").val(parseInt($("#number").val()) + label);
     });
     $("#Decre").click(function() {
         var final_number = parseInt($("#number").val()) - label;
         if (final_number >= 0) {
             $("#number").val(parseInt($("#number").val()) - label);
         }

     });
 });
</script>
<label id='label1'>50</label>
<input id='number' value=0></input>
<button  id='Incre'>Incre</button>
<button  id='Decre'>Decre</button> 

答案 2 :(得分:0)

您也可以使用Math.max()

$("#number").val(Math.max(0, parseInt($("#number").val())-label));