我试图将文本框限制为仅接受小数,整数以及-(负号)以及我在以下脚本中尝试过的退格键,但不允许-符号



$(document).ready(function() {
  $('#MainContent_txtAmount').keypress(function(event) {
    if ((event.which != 46 || $(this).val().indexOf('.') != -1) &&
      ((event.which < 48 || event.which > 57) &&
        (event.which != 0 && event.which != 8))) {
      event.preventDefault();
    }

    var text = $(this).val();
    if ((text.indexOf('.') != -1) &&
      (text.substring(text.indexOf('.')).length > 2) &&
      (event.which != 0 && event.which != 8) &&
      ($(this)[0].selectionStart >= text.length - 2)) {
      event.preventDefault();
    }
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="MainContent_txtAmount" type="text" />





我也如何接受负数。

最佳答案

这也允许使用“-”符号。添加了&& event.which!= 45。 DEMO FIDDLE

 $(document).ready(function () {
        $('#MainContent_txtAmount').keypress(function (event) {
            if ((event.which != 46 || $(this).val().indexOf('.') != -1) &&
              ((event.which < 48 || event.which > 57) &&
                (event.which != 0 && event.which != 8)) && event.which != 45) {
                event.preventDefault();
            }

            var text = $(this).val();
            if ((text.indexOf('.') != -1) &&
              (text.substring(text.indexOf('.')).length > 2) &&
              (event.which != 0 && event.which != 8) &&
              ($(this)[0].selectionStart >= text.length - 2)) {
                event.preventDefault();
            }
        });
    });

09-25 21:52