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]”值
- 缺少按钮+和-标签
- 固定按钮在达到最小/最大值时禁用/启用
<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);
}
});