используя jquery для создания комбинации ввода текста? - PullRequest
2 голосов
/ 14 сентября 2011

Мне было интересно, было ли в jquery возможность заставить текстовое поле принимать только комбинацию из 3 букв и 4 цифр (например, ABC1234) - в таком порядке?

Ответы [ 3 ]

4 голосов
/ 14 сентября 2011

http://jsfiddle.net/MEvj3/

Вот упрощенный пример одного способа.

<input type="text" class="code" />


$("input.code").keyup(function(){
    this.value = this.value.match(/[A-Z]{3}([0-9]{1,4})?|[A-Z]{1,3}/i)[0];
});
2 голосов
/ 14 сентября 2011
$("#text-input").focusout(function(){
    var regex = "[\w]{3}[\d]{4}"
    if(this.value.match(regex)){
        // display success
    }else{
        /// display error
    }
});
1 голос
/ 14 сентября 2011

Если вы создали вход с максимальной длиной ...

<input id="testy" type="text" maxlength="7" />

... тогда вы можете просто проверить его длину и jQuery's e.which:

$('#testy').keydown(function (e) {
    var keycode = e.which,
        isLetter = keycode > 64 && keycode < 90,
        isNumber = keycode > 47 && keycode < 58,
        l = this.value.length;
    if (keycode !== 8 && ((l < 4 && !isLetter) || (l > 3 && !isNumber))) {
        e.preventDefault();
    }
});

Обратите внимание, чтоЕсть некоторые ошибки:

  • Я не знаю, насколько это переносимо для разных ОС (возможно, не так уж и сложно при использовании jQuery)
  • У меня нет цифровой клавиатурыи, возможно, эти коды клавиш различаются (возможно, это не так уж и важно при использовании jQuery)
  • Кнопка Del будет отключена

Честно говоря, коддовольно небрежноЭто просто должно донести основную идею;вам, вероятно, придется настроить его, чтобы получить что-то, что действительно работает для вашего проекта.

...