Shopify 防止数量输入有负数
Shopify prevent quantity input have negative numbers
我对 Shopify 编码有疑问。我正在使用 Shopify ajax,我不明白为什么输入接受负数作为输入。
这里是gif行动。
现在我已经设置了一个条件,如果数量小于 1 则重新加载页面,这工作正常,但我想可能在 1 时停止输入。
我工作的页面是这样的:sunfieldmusic.com/cart
尝试将任何东西添加到购物车并尝试将数量减少到小于 1。(它应该刷新页面,因为这是当前行为。
我的编码如下
HTML
<button type="button" class="update minusbt" data-id="{{ line_item.variant.id }}"> - </button>
<input class=" cartquat quatinp" pattern="[0-9]*" min="1" name="updates[]" data-id="{{ line_item.variant.id }}" id="input_{{ line_item.variant.id }}" value="{{ line_item.quantity }}" type="text">
<button type="button" class="update plusbt" data-id="{{ line_item.variant.id }}"> + </button>
Jquery
$('body').on('click', '.plusbt', function () {
var data_id = $(this).attr('data-id');
var qty = $("#input_" + data_id).val();
var qty = parseInt(qty) + parseInt(1);
var variant_id = data_id;
$("#input_" + data_id).val(qty);
$.ajax({
type: 'POST',
url: '/cart/change.js',
dataType: 'json',
data: {
quantity: qty,
id: variant_id
},
success: function (cart) {
$.each(cart.items, function (index, row) {
if (variant_id == row.variant_id) $("#cartprice_" + variant_id).html('$' + parseFloat(row.line_price / 100).toFixed(2));
});
$("#cart_total").html('$' + parseFloat(cart.total_price / 100).toFixed(2));
},
error: function (response) {
alert("error");
}
});
});
$('body').on('click', '.minusbt', function (e) {
var data_id = $(this).attr('data-id');
var qty = $("#input_" + data_id).val();
var qty = parseInt(qty) - parseInt(1);
var variant_id = data_id;
$("#input_" + data_id).val(qty);
$.ajax({
type: 'POST',
url: '/cart/change.js',
dataType: 'json',
data: {
quantity: qty,
id: variant_id,
},
success: function (cart) {
if (qty < 1) {
location.reload(); //Reload page as I don't know how to stop this from accepting negative numbers
}
$.each(cart.items, function (index, row) {
if (variant_id == row.variant_id) $("#cartprice_" + variant_id).html('$' + parseFloat(row.line_price / 100).toFixed(2));
});
$("#cart_total").html('$' + parseFloat(cart.total_price / 100).toFixed(2));
},
error: function (response) {
//alert(response);
}
});
});
提前谢谢你。在此处发帖之前,我曾尝试进行搜索,但没有找到解决方案。
Return 如果数量小于零
$('body').on('click', '.minusbt', function (e) {
...
var qty = parseInt(qty) - parseInt(1);
if (qty < 0) { return;}
....
我对 Shopify 编码有疑问。我正在使用 Shopify ajax,我不明白为什么输入接受负数作为输入。
这里是gif行动。
现在我已经设置了一个条件,如果数量小于 1 则重新加载页面,这工作正常,但我想可能在 1 时停止输入。
我工作的页面是这样的:sunfieldmusic.com/cart
尝试将任何东西添加到购物车并尝试将数量减少到小于 1。(它应该刷新页面,因为这是当前行为。
我的编码如下
HTML
<button type="button" class="update minusbt" data-id="{{ line_item.variant.id }}"> - </button>
<input class=" cartquat quatinp" pattern="[0-9]*" min="1" name="updates[]" data-id="{{ line_item.variant.id }}" id="input_{{ line_item.variant.id }}" value="{{ line_item.quantity }}" type="text">
<button type="button" class="update plusbt" data-id="{{ line_item.variant.id }}"> + </button>
Jquery
$('body').on('click', '.plusbt', function () {
var data_id = $(this).attr('data-id');
var qty = $("#input_" + data_id).val();
var qty = parseInt(qty) + parseInt(1);
var variant_id = data_id;
$("#input_" + data_id).val(qty);
$.ajax({
type: 'POST',
url: '/cart/change.js',
dataType: 'json',
data: {
quantity: qty,
id: variant_id
},
success: function (cart) {
$.each(cart.items, function (index, row) {
if (variant_id == row.variant_id) $("#cartprice_" + variant_id).html('$' + parseFloat(row.line_price / 100).toFixed(2));
});
$("#cart_total").html('$' + parseFloat(cart.total_price / 100).toFixed(2));
},
error: function (response) {
alert("error");
}
});
});
$('body').on('click', '.minusbt', function (e) {
var data_id = $(this).attr('data-id');
var qty = $("#input_" + data_id).val();
var qty = parseInt(qty) - parseInt(1);
var variant_id = data_id;
$("#input_" + data_id).val(qty);
$.ajax({
type: 'POST',
url: '/cart/change.js',
dataType: 'json',
data: {
quantity: qty,
id: variant_id,
},
success: function (cart) {
if (qty < 1) {
location.reload(); //Reload page as I don't know how to stop this from accepting negative numbers
}
$.each(cart.items, function (index, row) {
if (variant_id == row.variant_id) $("#cartprice_" + variant_id).html('$' + parseFloat(row.line_price / 100).toFixed(2));
});
$("#cart_total").html('$' + parseFloat(cart.total_price / 100).toFixed(2));
},
error: function (response) {
//alert(response);
}
});
});
提前谢谢你。在此处发帖之前,我曾尝试进行搜索,但没有找到解决方案。
Return 如果数量小于零
$('body').on('click', '.minusbt', function (e) {
...
var qty = parseInt(qty) - parseInt(1);
if (qty < 0) { return;}
....