#jquery #validation #html #autocomplete
#jquery #проверка #HTML #автозаполнение
Вопрос:
Я знаю, что заголовок не отражает то, что я пытаюсь спросить, но вот что я пытаюсь сделать:
// желаемый формат: 123-123-1234
Когда пользователь вводит 123 (первые три символа), как я могу добавить дефис — Затем, когда пользователь вводит 123 (вторые три символа), как я могу добавить дефис — снова, а затем разрешить пользователю вводить только последние четыре цифры?
У меня есть функция, которая проверяет формат телефонного номера в США, который я хочу:
/* US Phone # */
'us_phonenumber':function($fld) {
var v = $fld.val();
if(v.length == 0) {
return true;
}
return /^d{3}-d{3}-d{4}$/.test(v);
},
Просто любопытно, могу ли я добавить какой-нибудь метод частичного автозаполнения при сохранении проверки
Ответ №1:
HTML:
<input type="text" />
<br /><a href="#" id="check">Click me!</a>
JS:
$("#check").click(function(){
var pNum = $("input").val();
var vNum = pNum.slice(0, 3) "-" pNum.slice(3, 6) "-" pNum.slice(6, 10);
$("input").val(vNum);
return false;
});
Скрипта:http://jsfiddle.net/ueyhE
Введите свой номер, затем нажмите «Щелкните меня!».
Редактировать:
Используя change()
:
$("input").click(function(){
var pNum = $(this).val();
var vNum = pNum.slice(0, 3) "-" pNum.slice(3, 6) "-" pNum.slice(6, 10);
$(this).val(vNum);
});
Ответ №2:
я не знаю, что делать во время ввода, но после завершения ввода это может быть менее запутанным для пользователя или меньшим правом на ошибку.
var string = '1234567890';
var formattedString = '';
var index;
for (var i = 0; i < string.length; i ) {
index = string.charAt(i);
(i == 3 || i == 6) ? formattedString = formattedString '-' index : formattedString = formattedString index;
}
alert(formattedString);