输入字段的重置仅在以前进行过警报时有效

时间:2017-11-23 20:31:50

标签: javascript jquery

基本上,当按下字段中只有一个charatcer的退格键或Escape字符时,我想清除该字段并更改按钮的名称。我知道条件已满足,因为按钮确实被重命名但字段拒绝被清除。如果我取消注释// alert('bou'),我的输入字段才会被重置。该按钮确实获得了“Scan”的新值,但输入仍然保留了我输入的值。我尝试使用.focus()但没有成功。

这是我在这里的第一篇文章,我试图满足您的所有标准,使其成为可接受的帖子。

感谢。

$("#inputBarcode").on("keydown", function(event){
  //alert('bou');
  if((event.which >=32 && event.which <=126) || //alphanumeric char
     (event.which === 14) ||                        //shift in
     (event.which === 15) ||                        //shift out
     (event.which >= 37 && event.which <= 40) ||    //arrow key
     (event.which === 127)){                        //delete
         $("#scanButton").text("Save");
  }else if((event.which === 27) || (event.which === 8 && $(this).val().length === 1)){                 
         $(this).val('');
         $("#scanButton").text("Scan");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<label id="labelMaterialBarcode" class="floatLeft">Material barcode 
     <div id="itemBarcode" role="cotg.Barcode">
         <input id="inputBarcode" class="inlineBlock" role="barcode-data" name="itemBarcode" type="text">
         <button id="scanButton" class="small inlineBlock floatRight" role="scan-button" type="button">Scan</button>
     </div>
</label>

1 个答案:

答案 0 :(得分:0)

问题是,keydown事件在输入值发生变化之前被触发。

您可以改为使用keyup事件。