newcode();
выполняется внешним вводом (клавиатура или SNAPI). В результате журнал консоли показывает, что barcode_id
имеет значение 1234
.
Но тогда, когда button_scan()
нажимается / выполняется, он всегда говорит barcode_id
пусто.
Как убедиться, что при выполнении newcode()
действительно отредактировано barcode_id
?
var barcode_id = '';
function button_scan() {
if(barcode_id!='') { // WHY????? always empty console shows: 1234
alert("DENY");
return false;
}
// ALLOW
}
function newcode() {
setTimeout(function() {
var new_barcode = $('#barcode').val();
if(new_barcode!='') {
barcode_id = new_barcode;
$('#barcode').val('');
console.log('>>> ', barcode_id); // prints value: 1234
}
}, 500);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" value='' name='barcode' id='barcode' onkeydown="newcode();"/>
<button onclick="button_scan()">Button</button>