ロケールに基づいてtexfield(通貨用)のユーザー入力を制御するjquery関数を記述しようとしています。アラートは、ドイツのロケールが「de」であることを教えてくれました。しかし、if-elseロジックは機能しません。特定のキーコードのpreventDefault()はif-elseなしでうまく動作します。誰かが私がここで間違っていることを教えてもらえますか?Jquery - IF-ELSEロジックが機能しない
jQuery(function($) {
$('.currency').on('keydown', function(e) {
var locale = $('#currFormat').val();
//alert(locale);
if (locale.toLowerCase() === "de") {
console.log(e.keyCode);
if (e.keyCode !== 46 && e.keyCode > 31 && e.keyCode !== 96 && e.keyCode !== 97 && e.keyCode !== 98 && e.keyCode !== 99 && e.keyCode !== 100 && e.keyCode !== 101 && e.keyCode !== 102 && e.keyCode !== 103 && e.keyCode !== 104 && e.keyCode !== 105 && e.keyCode !== 188 e.keyCode !== 37 && e.keyCode !==39 && (e.keyCode < 48 || e.keyCode > 57)) {
//stop all non-numbers
e.preventDefault();
} else {
// Here goes logic for not allowing comma and others (,)
}
});
});
「金額」の値はJSPからの値です。
<input type="hidden" id="CurrFormat" name="currFormat"
value="${pageContext.request.locale.language}" />
2番目のコンソールログの出力は何ですか? –
それは私がそこに持っていたキーコードであり、コンソールはJSで構文エラーを示しています。これは、私がちょうど編集したif文を指しています。しかし、if-elseを追加する前に私は以前よりもうまく動作しました。 –