Не уверен, что я полностью понял ваш вопрос, но ...
Вы хотите дождаться последнего "," чтобы убедиться, что все цифры были напечатаны вашим сканером?Или вам нужно получить эти 10, но интервал наступает как раз перед тем, как сканер закончит запись?
Если это второй случай, я рекомендую перезапускать интервал при каждом событии keyPressed.Сделав это, вы дадите некоторое время сразу после нажатия клавиши, чтобы подождать, если нажмете любую другую клавишу.
Итак, у вас будет что-то вроде этого:
var lastInterval = null
$(ids).keyPress(function() {
if(lastInterval != null)
clearTimeout(lastInterval)
lastInterval = setInterval(function() {
// ... your code here
}, 1000)
})
Это понятно?Надеюсь, это поможет:)
--- EDIT
Хорошо, странно, что сканер штрих-кода не запускает события keyPress
, но, принимая это за предпосылку, вы можете проверить измененияв строке, и когда строка не изменилась за N циклов, вы запускаете свой код.
В этом примере вы будете уверены, что строка осталась равной как минимум 1000мс (от 1000 мс до 1999 мс).
var lastString = ""
setInterval(function() {
if(lastString == $(ids).val()) { // So, if the value remains the same for 2 cycles, the second one your code will be evaluated
// ... your code here
}
lastString = $(ids).val()
}, 1000)