Как мога да огранича въвеждането само на точки, числа и точка и запетая в 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...'
 });

});


person Johnathan Au    schedule 02.10.2013    source източник
comment
възможен дубликат на java regex, съответстващ на ip адрес и порт номер като заснети групи   -  person melancia    schedule 02.10.2013
comment
и точка и запетая...например: 10.200.66.106:8888 - Значи имате предвид двоеточие, а не точка и запетая?   -  person nnnnnn    schedule 02.10.2013


Отговори (2)


Можете да използвате буквено-цифров плъгин на jquery, за да направите това. Добавете малко класа към вашия елемент.

$(".myclass").numeric({allow:"."});
person sudhAnsu63    schedule 02.10.2013
comment
Имайте предвид, че буквено-цифровият плъгин, към който се свързвате, всъщност не работи. Това означава, че не спира потребителя да въвежда невалидни знаци чрез поставяне в клипборда или плъзгане и пускане. - person nnnnnn; 02.10.2013
comment
в момента използвам приставката и тя просто ограничава потребителя да копира и поставя - person Johnathan Au; 02.10.2013
comment
@JohnathanAu - не ограничава поставянето, а просто деактивира контекстното меню, така че пак можете да поставите чрез менюто Редактиране или клавиатурата. - person nnnnnn; 03.10.2013

Можете да премахнете непозволените знаци:

<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 браузъри.

person Alex    schedule 02.10.2013