Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.11.2013, 23:43
Аспирант
Отправить личное сообщение для Apelcun77 Посмотреть профиль Найти все сообщения от Apelcun77
 
Регистрация: 14.11.2013
Сообщений: 37

Помогите исправить код
Помогите исправить код
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/ мне нужно еще русские буквы и англ, большие/маленькие и цифры и символы "./\()-_@^"
Ответить с цитированием
  #2 (permalink)  
Старый 15.11.2013, 03:03
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Ну, чтобы исправить код, нужно сначала понять что он должен делать. Я так понимаю, он проверяет значение поля "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);
});
Ответить с цитированием
  #3 (permalink)  
Старый 15.11.2013, 20:51
Аспирант
Отправить личное сообщение для Apelcun77 Посмотреть профиль Найти все сообщения от Apelcun77
 
Регистрация: 14.11.2013
Сообщений: 37

спасибо
Ответить с цитированием
  #4 (permalink)  
Старый 15.11.2013, 21:14
Аспирант
Отправить личное сообщение для Apelcun77 Посмотреть профиль Найти все сообщения от Apelcun77
 
Регистрация: 14.11.2013
Сообщений: 37

только вот что-то он не работает у меня, что делать?
Ответить с цитированием
  #5 (permalink)  
Старый 15.11.2013, 22:47
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Ну, как же не работает, когда работает? )
http://learn.javascript.ru/play/wWC3f
Ответить с цитированием
  #6 (permalink)  
Старый 15.11.2013, 22:53
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

А. Я протупил, конечно. Там неправильная регулярка.
Ответить с цитированием
  #7 (permalink)  
Старый 15.11.2013, 23:06
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Вот этот вариант рабочий: http://learn.javascript.ru/play/7e4g8
Правда, есть одно «но»: событие input не поддерживается в старых IE < 9, так что для них лучше продублировать его через keypress/keyup/keydown.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить функцию поиска слова opeen_door Общие вопросы Javascript 3 31.10.2011 21:44
Код калькулятора на JS. помогите с ошибкой! kirill.psl Общие вопросы Javascript 9 26.08.2010 11:38
Помогите довести код до ума krol Элементы интерфейса 4 09.08.2010 01:50
Помогите оптимизировать код. pizzZ jQuery 5 17.11.2009 23:52
Помогите исправить расположение окон abramovichanya Работа 2 10.07.2009 02:00