我是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>
答案 0 :(得分:0)
在这里
$(".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;
出了什么问题?
onkyepress
功能,该功能会在keypress
上添加事件。那是毫无意义的。只需添加一个在keypress
上触发或使用onkeypress
,line_qty
中写道,但您的元素没有该类。它有不同的等级line_qty_class
,showAdvice()
未定义,但您可能已定义该函数,因此不存在问题。答案 1 :(得分:0)
您可以使用jQuery keydown()方法阻止用户输入小数:
$(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;