#jquery #forms #validation #textinput
#jquery #формы #проверка #textinput
Вопрос:
У меня есть текстовый ввод, для которого требуется URL-адрес в качестве значения (полный http: //), и я хочу, чтобы, если пользователь не записывает его сам, если он добавляется автоматически. Мой код выглядит следующим образом,
jQuery
$('.txtUrl').keypress(function(e) {
if(e.keyCode == 13) {
var ini = $(this).val().substring(0,3);
if (ini === 'http'){
$.noop()
}
else {
// get value from field
var cur_val = $(this).val();
// do with cur_val
$(this).val('http://' cur_val);
}
}
});
HTML
<input type="text" class="txtUrl" />
Ответ №1:
Вы сравниваете http
с тремя первыми символами ( substring(0,3)
) текста, которые, конечно, никогда не будут истинными. Измените его на:
var ini = $(this).val().substring(0, 4);
Ответ №2:
http://jsfiddle.net/bitsmix/jMH9b/
if ($(this).val().match(/^http/))
регулярное выражение всегда лучше 🙂
Комментарии:
1. Регулярное выражение всегда дороже, чем замена строки.