1
Я создаю таблицу, чтобы добавить новые строки, где каждая строка имела входное количество, но не работает.Как использовать несколько номеров ввода?
Когда я добавляю больше, чем цифру, количество первых шагов ввода больше одного раза.
Я хочу, чтобы каждый шаг ввода 1 раз за клик.
Мой HTML - Джейд:
table(class=["table","table-hover", 'table-reception'])
thead
tr
th Referência
th Designação
th Quantidade
tbody
Мое мнение: (Когда я прочитал штрих-код я добавить новый тр)
tr(class="item-article", id="#{data.ref}", data-codigo="#{data.codigo}")
td(class="td-ref")
span #{data.ref}
td(class="td-design")
span #{data.design}
td(class="td-qtt")
<input type='button' value='-' class='minus' />
<input type='text' size='10' class='value' value='0' />
<input type='button' value='+' class='plus' />
мой JQuery:
function btnPlusMinus()
{
$('.minus, .plus').click(function (e) {
e.preventDefault();
var $input = $(this).siblings('.value');
var val = parseInt($input.val(), 10);
$input.val(val + ($(this).hasClass('minus') ? -1 : 1));
$(".barCode").val('');
$(".barCode").focus();
});
}
Jquery - штрих-код для загрузки:
function receptionArticle()
{
$('.barCode').change(function()
{
barCode = $(this).val();
//alert($(this).val());
document.getElementById('scrollToReception').scrollIntoView();
$.get("/warehouse-reception-getArticle/"+encodeURIComponent(barCode), function(data)
{
if(data == 'false')
{
$.get("/warehouse-reception-popup/", function(data)
{
$(".popup").html('');
$(".popup").append(data);
$('.opacity').show();
$('.popup').show();
closeWarehousePopup();
});
}
else
{
$(".table-reception tbody").append(data);
$(".table-reception tbody tr:last").hide();
$('.table-reception tbody tr:last').css("background-color", "#2ecc71").fadeIn(1000);
$(".table-reception tbody tr:last").animate({
'background-color': "initial"
}, 5000);
$("#reception-message").hide();
$(".barCode").val('');
$(".barCode").focus();
btnPlusMinus();
}
});
});
}
Html: Если я добавить пять строк и увеличиваю первый вход результат был 5, а не 1. Если я во втором ряду увеличивает результат был 4 и 1. т.д. ...
Спасибо
У вас есть несколько ''
Я создал [скрипку] (https://jsfiddle.net/w41dopu6/) для вашей проблемы с предположением для вашего html-кода. Эта скрипка отлично работает. Как ваш код отличается от кода в скрипке? – gus27
Я обновляю вопрос. Спасибо @ gus27 – user3242861
ответ
Проблема заключается в том, что вы звоните
btnPlusMinusInit()
каждый раз, когда вы добавляете строку - и с каждым вызовом, являются обязательными для дополнительного события на нем. Поэтому после добавления 3-х строк события для кнопок в первой строке вызываются 3 раза.Лучше использовать jQuery's on event handler с селектором. Используя селектор (в вашем случае
'.minus, .plus'
), событие делегировано и влияет на новые элементы, добавленные в DOM.Так что попробуйте вместо этого:
источник
2017-02-08 10:20:04 gus27
Как я могу это сделать только для положительного числа во входных данных?спасибо @ gus27 – user3242861
@ user3242861 После 'var val = parseInt ($ input.val(), 10);' return a 'if (val <= 0);' – gus27
, но после того, как я пришел в 0, я не могу снова увеличивать . @ gus27 – user3242861
Во-первых, это не очень хорошее решение для обработки функции с классом.
источник
2017-02-08 09:15:49 DomeTune
Но если я использую идентификаторы, у меня будут проблемы с несколькими входами. Строки будут добавлены динамически к таблице. – user3242861
Смежные вопросы