我正在尝试编写一个jquery函数,它根据语言环境控制texfield(货币)的用户输入。警报确实告诉我德语区域是“de”。但if-else逻辑不起作用。特定键码的preventDefault()在没有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 (,)
}
});
});
'amount'值来自JSP。
<input type="hidden" id="CurrFormat" name="currFormat"
value="${pageContext.request.locale.language}" />
答案 0 :(得分:3)
你有一个错字。所以从技术上讲,你选择的是页面上没有的元素。
// Group promotions By Plan Number ('Promotion ID')
var qUniqueOffers = query
.GroupBy(q => q.Plan_Number)
// Select first from each group to get unique details
var qOffers = qUniqueOffers
.Select(g => g.OrderBy(gi => gi.Plan_Number).First())
.ToList();
应该是
$('#currFormat').val();
这也是一个复制粘贴错误
$('#CurrFormat').val();
也很容易出现语法错误的原因是因为代码根本不可读。相反,你可以压缩它并使其更简单。
e.keyCode !== 188 e.keyCode !== 37 --> missing logical && between expressions