2017-11-23 3 views
1

フィールドまたはエスケープ文字に1文字しか含まれていないバックスペースを基本的に押すと、フィールドをクリアしてボタンの名前を変更します。ボタンの名前は変更されますが、フィールドはクリアされないため、条件が満たされていることがわかります。 //私の入力フィールドは、//警告( '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

まずは素晴らしい仕事です。初めてのポスターでは、時間と労力をかけて、良い質問を提供しようとすることはよくありません。次に、 'input'イベントを試しましたか? https://developer.mozilla.org/en-US/docs/Web/Events/input –

答えて

0

問題は、入力の値が変更される前​​イベントが発生されることを、です。

代わりにkeyupイベントを使用できます。

関連する問題