JavaScript - почему переменная всегда пуста? - PullRequest
0 голосов
/ 03 июля 2018

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>

1 Ответ

0 голосов
/ 03 июля 2018
if(barcode_id!='') //<---If the barcode_id is not an empty string

попробовать:

if(barcode_id=='')//<---If the barcode_id IS an empty string
...