在用户输入时自动从输入框中删除某些字符

时间:2016-03-20 14:33:12

标签: javascript jquery html

我正在尝试验证表单,我正在处理的输入框应该只包含数字。如果用户开始键入任何我希望他们自动删除的字母,显然如果他们输入数字,则不应删除。

这是我的js:

var defaultValue = 10; 

$(document).ready(function() {

      $('#donation-amount').keyup(function() {
      if($(this).val()) {
         $('#display-amount').text($(this).val());
    } else {
        $('#display-amount').text(defaultValue);
       $("#default").addClass('active');
       $("#btn2").removeClass('active');
       $("#btn3").removeClass('active');
    }
        if (isNaN( $(this).val() )) {
        console.log("false")
        } else {
        console.log("true")
        }

      });
     $( ".selectvalue" ).click(function() {
        $('#display-amount').text($(this).val());
     });

    $(".buttons .btn").click(function(){
        $(".buttons .btn").removeClass('active');
        $(this).toggleClass('active'); 
    });
    $('#display-amount').text($('#default').val());

});

这是我的HTML:

 <input type="Custom" name="donation-amount" class="inpt-first form-control" id="donation-amount" onclick="if(this.defaultValue == this.value) this.value = ''" onblur="if(this.value=='') this.value = this.defaultValue" value="Custom">

任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:0)

你想要这个吗? See this fiddle

var defaultValue = 10; 

$(document).ready(function() {
      $('#donation-amount').keyup(function() {
        // check if numbers are type
        var reg = /^\d+$/;
        if(reg.test($(this).val())) {
          $('#donation-amount').val($(this).val());
            } else {
         $('#donation-amount').val(defaultValue);

            }      
      });
});

答案 1 :(得分:0)

不要删除非数字字符,只需先忽略它们,或将输入类型定义为number

HTML Text Input allow only Numeric input

答案 2 :(得分:0)

您可能希望利用HTML5的<input type="number">。但是,如果这对您的情况不起作用或者不合适,您可能想尝试使用jQuery的keydown()函数。

<强> HTML

<input id="inputField" type="text">

<强>的jQuery

$(function () {
    $("#inputField").keydown(function (e) {
        if (e.which != 0 && e.which != 8 && (e.which < 48 || e.which > 57)) {
            $("#quantity").html('').append();
        }
    });
});

这将检查触发事件的键是否为数字并且在数字键分配范围内。如果触发事件的键与这些条件不匹配,则不给出输出。但是,如果输入符合数值范围,则会将其添加(append())到输入字段本身。

值得注意的是,这可以使用标准JavaScript实现:window.addEventListener('keydown', function (e) {});