【发布时间】:2017-01-03 13:14:37
【问题描述】:
我正在为电子商务购物车写一个带有- 和+ 按钮的<input type="number">。
每个组的结构是:
- 1x
<button class="minus" data-prod="prod_id_int"> - 1x
<input type="number" id="prod_id_int"> - 1x
<button class="plus" data-prod="prod_id_int">
如果输入类型号的值为< 1,我现在要做的是禁用按钮-。
要实现它,根据我的脚本,我必须禁用的不是一般的<button class="minus">,而是特定的<button class="minus" data-prod="prod_id_int">。
我试过这个
$(buttonClass).data('prod', dataProd).prop('disabled', true);
它实际上阻止了数量为< 1 但它并没有真正将属性disabled 添加到按钮中。那么,我不确定这是不是正确的方法。有人可以解释一下如何实现吗?
这里是工作的 sn-p
$(document).ready(function() {
$('button').on('click', function() {
var buttonClass = $(this).attr('class');
//console.log(buttonClass);
var buttonID = $(this).attr('id');
//console.log(buttonID);
var dataProd = $(this).data('prod');
var inputToChange = $('#' + dataProd);
var inputToChangeValue = $('#' + dataProd).val();
if (buttonClass == 'minus') {
var newValue = parseInt(inputToChangeValue) - parseInt(1);
if (newValue < 1) {
$(buttonClass).data('prod', dataProd).prop('disabled', true);
//$(buttonClass).data('prod="' + dataProd + '"').prop('disabled', true);
//$(buttonClass + '.[data-prod="' + dataProd + '"]').attr(disabled=disabled); //.prop('disabled', true)
//alert('NOPE');
} else {
$('#' + dataProd).val(newValue);
//console.log(inputToChangeValue);
}
} else if (buttonClass == 'plus') {
var newValue = parseInt(inputToChangeValue) + parseInt(1);
if (newValue > 99) {
alert('NOPPPPEE');
} else {
$('#' + dataProd).val(newValue);
console.log(inputToChangeValue);
}
}
});
});
.plus,
.minus {
width: 1.5%;
height: auto;
background-color: #EF1B1F;
border-radius: 50%;
text-align: center;
display: inline-block;
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="minus" data-prod="23">-</button>
<input type="number" class="qta" id="23" value="5">
<button class="plus" data-prod="23">+</button>
<br>
<button class="minus" data-prod="90">-</button>
<input type="number" class="qta" id="90" value="62">
<button class="plus" data-prod="90">+</button>
【问题讨论】:
-
$(buttonClass).prop('disabled', newValue < 1);这到底是什么?parseInt(inputToChangeValue) - parseInt(1);试试inputToChangeValue-- -
按钮确实被禁用了对吗?因为
prop('disabled', true)是这样做的方法 -
@mplungjan 感谢
--提示,尽管如果将它放在 var 前面,如 Alexandru-Ionut Mihai 强调的那样,它会起作用,而不是放在最后。我实际上无法得到这个$(buttonClass).prop('disabled', newValue < 1); -
$("."+buttonClass).prop
标签: javascript jquery html css button