javascript - 防止输入量在 JQuery 中变为负数

标签 javascript jquery

我当前的网站上有一个功能,当您单击加号按钮或减号按钮时,该功能会增加和减少一个值。由于它作为订单数量出现在电子商务网站上,因此选择负值没有多大意义。我试图向我的 jquery 添加一些逻辑,以防止该值变为负值,但我的嵌套逻辑由于某种原因无法正常工作。任何帮助将不胜感激!

JQuery

$(document).ready(function(e) {

$('.up').on('click',function(){
            var num = $(this).parent().find('.input-quantity').val();
            $(this).parent().find('.input-quantity').val(parseInt(num)+1);
        });
        $('.down').on('click',function(){
              var num = $(this).parent().find('.input-quantity').val();
            $(this).parent().find('.input-quantity').val(parseInt(num) -1);
        }); 

});

HTML

 <div class="quantity clearfix">
    <span>quantity:</span>  
           <div  class="incre">
        <em class="down">-</em ><input type="text"  value="1" class="input1 input-quantity "><em class="up">+</em ><br>

</div>  
      <div class="clear"></div>  

   </div>

CSS

.quantity                        {margin: 30px 0 0 0;max-width:242px;border: solid 1px #d3d2d2;padding: 3px 0 6px 11px;border-radius: 4px;}
.quantity  span                 {display:inline-block;float:left;font-family:Arial, Helvetica, sans-serif;font-size: 14px;line-height: 20px;padding: 6px 0 0 0;color: #333333;}
.incre                  {display:inline-block;float:right;margin: 0;width: 39%;}
.incre  em                  {display: inline-block;font-size: 26px;line-height: 31px;width: 29px;height: 29px;background: #cccccc;border-radius: 100%;color: #fff;padding: 0;float: left;text-align: center;margin: 0; cursor:pointer;}
.incre  .input1             {outline:none;border:0;display: inline-block;float: left;width: 20px;text-align: center;margin: 0 7px 0 3px;padding: 3px 0 0 0;font-size: 19px;height: 28px;line-height: 19px;color: #000;}
.quantity  small                {display:block;font-size: 18px;line-height: 20px;color: #000;padding: 0 12px 0 9px;}

我尝试过的:

我已经尝试更改我的 jQuery 中“向下”按钮的功能,以表示如果在执行该函数时该值等于零,则使该值等于 1 并递减该值。这种黑客攻击将防止值(value)永远变为负值。

    $('.down').on('click',function(){
          var num = $(this).parent().find('.input-quantity').val();
     if(num = 0){num = 1}
        $(this).parent().find('.input-quantity').val(parseInt(num) -1);
    }); 

我也试过:

if(num === "0"){num === "1"}

在递减值的语句之前,因为看起来整数可能已作为字符串返回。

无论如何,我们将不胜感激!

最佳答案

使用输入type=number,然后设置最小值

<input type="number" min="0">

关于javascript - 防止输入量在 JQuery 中变为负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46055825/

相关文章:

javascript - 加载时,页面位于其底部

javascript - 对对象数组进行迭代后无法获取单个值

javascript - 如何在站点和子站点之间使用 Sharepoint 2013 中的 Rest API 和 javascript 复制文件

javascript - 无法访问被点击的元素

javascript - 在哪里手动编辑这个用 JavaScript 制作的特定日历中的事件名称

javascript - 如何将html中的ng-model值获取到javascript

javascript - 使用 Jquery(不是 AJAX)的跨域请求

javascript - 使 <a> 链接激活展开文本按钮

javascript - 如何更改 chrome 扩展通知中图标的背景颜色

jQuery .css ('border' ) 在 Firefox 中不返回任何内容