Помогите исправить код
Помогите исправить код
var check_alpha_time = setInterval(check_alpha, 1000);
function check_alpha() {
var alpha = = /\w/;
if ( document.feedback.firstname.value.search(alpha) !== -1 ) {
document.all.item("firstname_check").innerHTML = "+";
}
else {
document.all.item("firstname_check").innerHTML = "Некорректные символы";
}
}
Незнаю почему не работает(, также вместо /\w/ мне нужно еще русские буквы и англ, большие/маленькие и цифры и символы "./\()-_@^" |
Ну, чтобы исправить код, нужно сначала понять что он должен делать. Я так понимаю, он проверяет значение поля "firstname" формы "feedback" при помощи регулярки и добавляет что-то типа хинта в какой-то другой элемент… Исходя из этих предположений я думаю, что баг в том, что в третьей строке написано "= =" вместо "=".
В общем-то, есть еще куча вопросов. Например, почему значение проверяется только раз в секунду? Я бы сделал как-то так:
<form action="" id="feedback">
<input type="text" id="firstname" />
<span id="firstname_check"></span>
</form>
var inputElem = document.getElementById('firstname');
var hintElem = document.getElementById('firstname_check');
var alpha = /[()\-.\/@^_а-яА-ЯёЁ\w]/;
inputElem.addEventListener('keypress', function () {
/*
Важный момент: событие keypress возникает до того как нажатая
клавиша изменит значение инпута, так что мы немного откладываем
проверку введенного значения. Совсем ненадолго. На 0. :)
*/
setTimeout(function () {
hintElem.innerHTML = alpha.test(inputElem.value) ? '+' : 'Некорректные символы';
}, 0);
});
|
спасибо
|
только вот что-то он не работает у меня, что делать?
|
Ну, как же не работает, когда работает? )
http://learn.javascript.ru/play/wWC3f |
А. Я протупил, конечно. Там неправильная регулярка.
|
Вот этот вариант рабочий: http://learn.javascript.ru/play/7e4g8
Правда, есть одно «но»: событие input не поддерживается в старых IE < 9, так что для них лучше продублировать его через keypress/keyup/keydown. |
| Часовой пояс GMT +3, время: 21:50. |