Jquery - IF-ELSE逻辑不起作用

时间:2017-06-22 20:59:12

标签: javascript jquery jsp

我正在尝试编写一个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}" />

1 个答案:

答案 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