Проверка числа при вводе HTML с помощью JavaScript не работает

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

Проверка числа в input не работает, вот полный код: http://jsfiddle.net/aVF7M /

 $('.number').each(function(){
    $(this).bind('keyup change',function(){
        $(this).val($(this).val().replace(/D/g,''));
    });
});


$('a.add_input').live('click', function (event) {
    event.preventDefault();
    num()
    var $class = '.'   $(this).closest('div.find_input').find('div').attr('class').split(" ")[0];
    var size_un = $($class).length;
    var $this = $(this),
        $div = $this.closest($class),
        $clone = $div.clone().hide().insertAfter($div).fadeIn('slow');
    $clone.find('.remove_table').remove();
    $clone.find('.adda').not(':has(.remove_input)').append('<div class="mediumCell"><a href="" class="remove_input"></a></div>');
    $clone.find('input:checkbox').prop('checked', false);
    $clone.find('input:text').val('')
    $this.remove();
    var size_un = $($class).length---1;
    $($class   ':last input:checkbox').prop('name', 'checkbox_units['   size_un   '][]');
    console.log($($class   ':last input:checkbox').prop('name'));
});
  

Комментарии:

1. Не могли бы вы, пожалуйста, очистить свой код и предоставить только столько, сколько имеет отношение к рассматриваемой проблеме?

Ответ №1:

Учитывая, что вы определили num(), и это работает.

Поскольку вы добавляете input.number динамически, вам нужно будет использовать live —

 $('.number').live('keyup change',function(){
    $(this).val($(this).val().replace(/D/g,''));
});
  

Демонстрация http://jsfiddle.net/aVF7M/1 /

Комментарии:

1. Все эти объекты jQuery и вызовы функций для получения и установки свойства, к которому можно получить прямой доступ: this.value = this.value.replace(/D/g,'') намного быстрее.