Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 禁用加减添加按钮_Javascript_Jquery_Html_Css_Spinner - Fatal编程技术网

Javascript 禁用加减添加按钮

Javascript 禁用加减添加按钮,javascript,jquery,html,css,spinner,Javascript,Jquery,Html,Css,Spinner,我的页面有多个添加(+/-)购物车按钮如果三个按钮中有一个按钮有增量,那么所有剩余的按钮都应该禁用递增和递减 <div class="pull-right"><span class="desc_room_price">EUR 80.50</span> <span class="input-group __newbtn"> <span class="input-group-btn">

我的页面有多个添加(+/-)购物车按钮如果三个按钮中有一个按钮有增量,那么所有剩余的按钮都应该禁用递增和递减

<div class="pull-right"><span class="desc_room_price">EUR 80.50</span>
    <span class="input-group __newbtn">
          <span class="input-group-btn">
              <button type="button" class="btn  btn-number __minusbtn"  data-type="minus" data-field="hr_sec_b[1]">
                <span class="minus_btn_a"></span>
              </button>
          </span>
          <input type="text" name="hr_sec_b[1]" class="form-control input-number" value="0" min="0" max="100">
          <span class="input-group-btn">
              <button type="button" class="btn btn-number __plusbtn" data-type="plus" data-field="hr_sec_b[1]">
                  <span class="plus_btn_a"></span>
              </button>
          </span>
      </span>
</div>

<div class="pull-right"><span class="desc_room_price">EUR 80.50</span>
    <span class="input-group __newbtn">
          <span class="input-group-btn">
              <button type="button" class="btn  btn-number __minusbtn"  data-type="minus" data-field="hr_sec_b[1]">
                <span class="minus_btn_a"></span>
              </button>
          </span>
          <input type="text" name="hr_sec_b[1]" class="form-control input-number" value="0" min="0" max="100">
          <span class="input-group-btn">
              <button type="button" class="btn btn-number __plusbtn" data-type="plus" data-field="hr_sec_b[1]">
                  <span class="plus_btn_a"></span>
              </button>
          </span>
      </span>
</div>

    $('.btn-number').click(function(e){
        e.preventDefault();

        var fieldName = $(this).attr('data-field');
        var type      = $(this).attr('data-type');
        var input = $("input[name='"+fieldName+"']");
        var currentVal = parseInt(input.val());
        if (!isNaN(currentVal)) {
            if(type == 'minus') {
                var minValue = parseInt(input.attr('min')); 
                if(!minValue) minValue = 0;
                if(currentVal > minValue) {
                    input.val(currentVal - 1).change();
                } 
                if(parseInt(input.val()) == minValue) {
                    $(this).attr('disabled', true);
                }

            } else if(type == 'plus') {
                var maxValue = parseInt(input.attr('max'));
                if(!maxValue) maxValue = 9999999999999;
                if(currentVal < maxValue) {
                    input.val(currentVal + 1).change();
                }
                if(parseInt(input.val()) == maxValue) {
                    $(this).attr('disabled', true);
                }

            }
        } else {
            input.val(0);
        }
    });
80.50欧元
80.50欧元
$('.btn编号')。单击(函数(e){
e、 预防默认值();
var fieldName=$(this.attr('data-field');
var type=$(this.attr('data-type');
变量输入=$(“输入[name=”+fieldName+“]”);
var currentVal=parseInt(input.val());
如果(!isNaN(currentVal)){
如果(类型=='减'){
var minValue=parseInt(input.attr('min');
如果(!minValue)minValue=0;
如果(当前值>最小值){
input.val(currentVal-1.change();
} 
if(parseInt(input.val())==minValue){
$(this.attr('disabled',true);
}
}else if(类型=='plus'){
var maxValue=parseInt(input.attr('max');
如果(!maxValue)maxValue=999999999;
如果(当前值<最大值){
input.val(currentVal+1.change();
}
if(parseInt(input.val())==maxValue){
$(this.attr('disabled',true);
}
}
}否则{
输入.val(0);
}
});
默认情况下,所有按钮都将启用。 有什么问题,请告诉我。

问题是:

  • 两个输入具有相同的名称:
    hr\u sec\u b[1]
  • 所有按钮都具有相同的
    数据字段=“hr\u sec\u b[1]”值
  • 缺少按钮+和-标签
  • 固定按钮在达到最小/最大值时禁用/启用

已更正的HTML

<div class="pull-right"><span class="desc_room_price">EUR 80.50</span>
    <span class="input-group __newbtn">
          <span class="input-group-btn">
              <button type="button" class="btn  btn-number __minusbtn"  data-type="minus" data-field="hr_sec_b[0]">
                <span class="minus_btn_a">-</span>
              </button>
          </span>
          <input type="text" name="hr_sec_b[0]" class="form-control input-number" value="0" min="0" max="5">
          <span class="input-group-btn">
              <button type="button" class="btn btn-number __plusbtn" data-type="plus" data-field="hr_sec_b[0]">
                  <span class="plus_btn_a">+</span>
              </button>
          </span>
      </span>
</div>

<div class="pull-right"><span class="desc_room_price">EUR 80.50</span>
    <span class="input-group __newbtn">
          <span class="input-group-btn">
              <button type="button" class="btn  btn-number __minusbtn"  data-type="minus" data-field="hr_sec_b[1]">
                <span class="minus_btn_a">-</span>
              </button>
          </span>
          <input type="text" name="hr_sec_b[1]" class="form-control input-number" value="0" min="0" max="5">
          <span class="input-group-btn">
              <button type="button" class="btn btn-number __plusbtn" data-type="plus" data-field="hr_sec_b[1]">
                  <span class="plus_btn_a">+</span>
              </button>
          </span>
      </span>
</div>
80.50欧元
-
+
80.50欧元
-
+
已更正的JavaScript

$('.btn-number').click(function(e){
    e.preventDefault();

    var fieldName = $(this).attr('data-field');
    var type      = $(this).attr('data-type');
    var input = $("input[name='"+fieldName+"']");
    var reverseInput = $("button[data-field='" + fieldName + "'][data-type!='" + type + "']");
    var currentVal = parseInt(input.val());

    if (!isNaN(currentVal)) {
        if(type == 'minus') {
            $(reverseInput).attr('disabled', false);
            var minValue = parseInt(input.attr('min')); 
            if(!minValue) minValue = 0;
            if(currentVal > minValue) {
                input.val(currentVal - 1).change();
            } 
            if(parseInt(input.val()) == minValue) {
                $(this).attr('disabled', true);
            }
        } else if(type == 'plus') {
            $(reverseInput).attr('disabled', false);
            var maxValue = parseInt(input.attr('max'));
            if(!maxValue) maxValue = 9999999999999;
            if(currentVal < maxValue) {
                input.val(currentVal + 1).change();
            }
            if(parseInt(input.val()) == maxValue) {
                $(this).attr('disabled', true);
            }
        }
    } else {
        input.val(0);
    }
});
$('.btn number')。单击(函数(e){
e、 预防默认值();
var fieldName=$(this.attr('data-field');
var type=$(this.attr('data-type');
变量输入=$(“输入[name=”+fieldName+“]”);
var reverseInput=$(“按钮[数据字段='”+fieldName+“]”][数据类型!='“+type+”]);
var currentVal=parseInt(input.val());
如果(!isNaN(currentVal)){
如果(类型=='减'){
$(反向输入).attr('disabled',false);
var minValue=parseInt(input.attr('min');
如果(!minValue)minValue=0;
如果(当前值>最小值){
input.val(currentVal-1.change();
} 
if(parseInt(input.val())==minValue){
$(this.attr('disabled',true);
}
}else if(类型=='plus'){
$(反向输入).attr('disabled',false);
var maxValue=parseInt(input.attr('max');
如果(!maxValue)maxValue=999999999;
如果(当前值<最大值){
input.val(currentVal+1.change();
}
if(parseInt(input.val())==maxValue){
$(this.attr('disabled',true);
}
}
}否则{
输入.val(0);
}
});