Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Запрет ввода символов (https://javascript.ru/forum/jquery/20723-zapret-vvoda-simvolov.html)

Beriagts 15.08.2011 12:00

Запрет ввода символов
 
Была функция которая вызывалась через onkeyup
function delchar(input) { 
        var value = input.value; 
        var rep = /[-\.;":'/a-zA-Zа-яА-Я ]/; 
        if (rep.test(value)) { 
            value = value.replace(rep, ''); 
            input.value = value; 
        }
        }

Теперь возникла необходимость реализовать ее через JQ.

devote 15.08.2011 12:26

ну реализовывай, кто ж мешает то?

ваый 15.08.2011 12:30

$('#zipcode').keyup(function() {
    delchar($(this)[0]);
})

Это надо делать не через replace.

devote 15.08.2011 12:35

Цитата:

Сообщение от ваый
Это надо делать не через replace.

Кто как может так и изъеживается =)

Beriagts 15.08.2011 12:57

в чем может быть проблема, написал вот такое
$('.dlg').keypress(function() {
            $(this).val($(this).val().replace(/[a-zA-Zа-яА-Я]/,""));
            })

если поставить это в консоль просто заменяет, а вот реагировать не хочет при нажатии.

ваый 15.08.2011 13:23

<input type="text" class="test">

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
$('.test').keypress(function(e) {
    if (e.keyCode < 48 || e.keyCode > 57) {
        return false;
    } 
});
</script>

Beriagts 15.08.2011 13:30

понял как сделал, теперь еще один вопрос где вы берете значения "keyCode"&

devote 15.08.2011 13:32

<input type="text" class="test"> 
  
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
<script type="text/javascript">
$(".test").keypress(function( b ){
    var C = /[0-9\x25\x27\x24\x23]/;
    var a = b.which;
    var c = String.fromCharCode(a);
    return !!(a==0||a==8||a==9||a==13||c.match(C));
});
</script>

Beriagts 15.08.2011 13:43

а чем ваш код лучше? у "ваый" не пропускает нажатия " ' ", и как то меньше строк или просто что скорость выполнения у вас быстрей ?

devote 15.08.2011 13:53

Цитата:

Сообщение от Beriagts
а чем ваш код лучше? у "ваый" не пропускает нажатия " ' ", и как то меньше строк или просто что скорость выполнения у вас быстрей ?

Ну ты попробуй курсор переместить с его кодом, или нажать кнопку backspace/del и все поймешь. а если не хошь получать знак " ' " то можешь просто из условия убрать \x27


Часовой пояс GMT +3, время: 22:07.