Как я могу ограничить ввод только периодами, числами и точками с запятой в jQuery?

Я хочу ограничить символы, которые пользователь может вводить в поле ввода текста, чтобы они могли вводить только цифры, точки и двоеточия. Так что, если они введут что-то еще, оно не будет отображаться или регистрироваться Это для IP-адресов, например: 10.200.66.106:8888

Как я могу добиться этого в JQuery?

Я написал небольшой пример в jsFiddle: http://jsfiddle.net/6xMxs/

HTML:

<div id="outer">
    <div id="inner">
            <p>IP Address:</p>
        <p class="edit">2323</p>
    </div>
<div>

JQuery:

 $(document).ready(function() {
 $('.edit').editable('ipaddress/update',{ 
     type      : 'textarea',
     cancel    : 'Cancel',
     submit    : 'OK',        
     tooltip   : 'Click to edit...'
 });

});

2 ответа

Вы можете удалить недопустимые символы:

<input id="ip" type="text" />



$(document).ready(function() {

     $('#ip').keyup(function() { 
        var el = $(this),
            val = el.val();

         el.val(val.replace(/[^\d\.]/gi, ""));
     }).blur(function() {
         $(this).keyup();
     });
 });

Рабочая скрипка

Но есть и лучшие способы, например, вы можете полностью "заблокировать" ввод нежелательных символов. И помните, что вы можете легко избежать этих ограничений, когда не выполняется проверка на стороне сервера.

Кроме того, вы можете захотеть проверить шаблон атрибута html5, который, как подсказывает контекст, работает только для браузеров html5.

Вы можете использовать алфавитно-цифровой плагин jquery, чтобы сделать это. Добавьте некоторый класс к вашему элементу.

$(".myclass").numeric({allow:"."});
Другие вопросы по тегам