阻止文本框中的点

时间:2017-09-19 05:25:37

标签: javascript jquery html

我有一个数量文本框,不应该允许负号,'。'  字符。

我尝试了一个jquery块,但它允许'。'。我想阻止'。'在文本框中



$(document).ready(function () {
$('#used_quantity').keypress(function(event) {
  if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
    event.preventDefault();
  }
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="text" id="used_quantity">
&#13;
&#13;
&#13;

5 个答案:

答案 0 :(得分:3)

使用keydown事件。仅与键值匹配,而不是与输入的字符串匹配

<强> Updated

带退格

$(document).ready(function() {
  $('#used_quantity').keydown(function(event) {
    if ((event.which != 46) && (event.which < 48 || event.which > 57) && (event.which != 8)) {
      event.preventDefault();
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="text" id="used_quantity">

答案 1 :(得分:1)

您需要将条件修改为event.which == 46 || event.which == 45以分别忽略.-

&#13;
&#13;
$(document).ready(function() {
  $('#used_quantity').keypress(function(event) {
    if (event.which == 46 || event.which == 45 || event.which < 48 || event.which > 57) {
      event.preventDefault();
    }
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="text" id="used_quantity">
&#13;
&#13;
&#13;

答案 2 :(得分:1)

请检查此代码。它会工作。删除

if ((event.which != 46 || $(this).val().indexOf('.') != -1) && 
(event.which < 48 || event.which > 57)) 

条件

if ((event.which < 48 || event.which > 57) && event.which != 45) {

检查jsliddle EXAMPLE HERE

答案 3 :(得分:0)

将条件更改为(((event.which == 46 || event.which == 45 || $(this).val().indexOf('.') != -1)) || (event.which < 48 || event.which > 57))。在keypress事件

$(document).ready(function() {
  $('#used_quantity').keypress(function(event) {
  
    if (((event.which == 46 || event.which == 45 || $(this).val().indexOf('.') != -1)) || (event.which < 48 || event.which > 57)) {
      event.preventDefault();
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="used_quantity">

答案 4 :(得分:0)

试试这个:

$('#used_quantity').bind("change  input", function () {
    var value = $(this).val().replace(/([^0-9].*)/g, "");
    $(this).val(value);
})