[英]Add/minus number inside a input field on Click
This is my Fiddle: https://jsfiddle.net/55L52yww/93/ 这是我的小提琴: https : //jsfiddle.net/55L52yww/93/
Example 1 (integer) Works fine 示例1(整数)工作正常
Example 2 (float): 示例2(浮动):
Problems with adding on second time, and on 8th ~ time 第二次〜第8次〜加法的问题
if you press on minus it jumps to 0.15, even if the value is 0.75 it will jump to 0.15 (this one I fixed, just missed a parseFloat https://jsfiddle.net/55L52yww/94/ ) 如果按减号,它将跳至0.15,即使该值是0.75,也会跳至0.15(我已修复的问题,只是错过了parseFloat https://jsfiddle.net/55L52yww/94/ )
How can I fix example 2? 如何修复示例2? Thanks for any help 谢谢你的帮助
// The button to increment the product value
$(document).on('click', '.product_quantity_up', function(e){
e.preventDefault();
var arrayData = $(this).data('field-qty');
var arr = arrayData.split(';');
for (i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
fieldName = arr[0];
var currentVal = parseFloat($('input[name='+fieldName+']').val());
var minimalVal = parseFloat($('input[name='+fieldName+']').attr("data-minimal_quantity"));
if (!isNaN(currentVal) && currentVal < minimalVal) {
$('input[name='+fieldName+']').val(minimalVal);
$(this).parent().parent().find(".ajax_add_to_cart_button").attr("data-minimal_quantity",minimalVal);
}
else {
$('input[name='+fieldName+']').val(currentVal + parseFloat(arr[1])).trigger('keyup');
$(this).parent().parent().find(".ajax_add_to_cart_button").attr("data-minimal_quantity",currentVal + parseFloat(arr[1]));
}
$('#'+fieldName).change();
});
// The button to decrement the product value
$(document).on('click', '.product_quantity_down', function(e){
e.preventDefault();
var arrayData = $(this).data('field-qty');
var arr = arrayData.split(';');
for (i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
fieldName = arr[0];
var currentVal = parseInt($('input[name='+fieldName+']').val());
var minimalVal = parseFloat($('input[name='+fieldName+']').attr("data-minimal_quantity"));
if (!isNaN(currentVal) && currentVal > minimalVal){
$('input[name='+fieldName+']').val(currentVal - parseFloat(arr[1])).trigger('keyup');
$(this).parent().parent().find(".ajax_add_to_cart_button").attr("data-minimal_quantity",currentVal - parseFloat(arr[1]));
}
else {
$('input[name='+fieldName+']').val(minimalVal);
$(this).parent().parent().find(".ajax_add_to_cart_button").attr("data-minimal_quantity",minimalVal);
}
$('#'+fieldName).change();
});
In the second event handler, you still use parseInt
to get currentValue
: 在第二个事件处理程序中,您仍然使用parseInt
来获取currentValue
:
var currentVal = parseInt($('input[name='+fieldName+']').val());
So that needs to be: 因此需要:
var currentVal = parseFloat($('input[name='+fieldName+']').val());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.