阻止用户使用JavaScript输入小数

时间:2018-05-09 09:52:45

标签: javascript jquery

我是Java Script的新手。我想阻止用户输入小数  在使用JavaScript的字段中。我尝试了这种方法,但显示了这个错误。

令牌“_ $ tag ____________”上的语法错误,AssignmentOperator

无效
<td>
<form:input class="form-control line_qty_class inputs" onkeypress="checkDecimal();" required="required" id="line_qty${loop.index}" path="saleInvoiceLines[${loop.index}].quantity" />
</td>


<script>
function checkDecimal() {
    $(".line_qty").keypress(function(e) {
        if (e.which < 46 || e.which > 57) {
            showAdvice(this, "Enter Integer Value");
            return(false);
        }
    });
}
</script>

2 个答案:

答案 0 :(得分:0)

在这里

&#13;
&#13;
$(".line_qty").keypress(function(e) {
  if (e.which < 46 || e.which > 57) {
    console.log("Enter Integer Value");
    return (false);
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<td>
  <input class="line_qty" required="required" id="line_qty" />
</td>
&#13;
&#13;
&#13;

出了什么问题?

  1. 您同意onkyepress功能,该功能会在keypress上添加事件。那是毫无意义的。只需添加一个在keypress上触发或使用onkeypress
  2. 的函数
  3. 您在jQuery类line_qty中写道,但您的元素没有该类。它有不同的等级line_qty_class
  4. 您使用的函数showAdvice()未定义,但您可能已定义该函数,因此不存在问题。

答案 1 :(得分:0)

您可以使用jQuery keydown()方法阻止用户输入小数:

&#13;
&#13;
$(function() {
  $( '#txtinteger' ).on( 'keydown', function( e ) {
    -1 !== $.inArray( e.keyCode, [ 46,8,9,27,13,110,190 ] ) || ( /65|67|86|88/.test( e.keyCode ) && ( e.ctrlKey === true || e.metaKey === true ) ) && ( !0 === e.ctrlKey || !0 === e.metaKey ) || 35 <= e.keyCode && 40 >= e.keyCode || ( e.shiftKey || 48 > e.keyCode || 57 < e.keyCode ) && ( 96 > e.keyCode || 105 < e.keyCode ) && e.preventDefault()
  } );
} )
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="txtinteger" />
&#13;
&#13;
&#13;