2012-10-03 2 views
1

Попытка получить изменение класса при вводе любого символа, кроме строчных букв, в текстовое поле. Тем не менее, и я уверен, что есть какая-то глупость, вызывающая это, его не показывает console.log «yo!». Вот javascript:Проверка правильности формы, чтобы избавиться от символов нижнего регистра

$(function(){ 
    $("input[name='name']").keyup(function(){ 
     var str = $(this).val(); 
     var badChars = new RegExp("[^a-z]"); 
     if (str.indexOf(badChars)!=-1){ 
      console.log("yo!"); 
      $(this).removeClass("good"); 
      $(this).addClass("error"); 
     } 
    }); 
}); 

Что я испортил?

+0

ли лучше использовать имя или ID? –

+4

str.indexOf принимает строку ** **, а не регулярное выражение. Вероятно, вы хотите ** совместить ** или ** тест **. https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/indexOf –

ответ

2
$(function() { 
    // Don't need to create new RegExp object on each keyup event. 
    // Just create it once: 
    var badChars = new RegExp("[^a-z]"); 

    $("input[name='name']").keyup(function() { 
     // Use RegExp.test() method to check 
     // is string matches the regular expression. 
     if (badChars.test(this.value)) { 
      console.log("yo!"); 
      $(this).removeClass("good") 
        .addClass("error"); 
     } 
    }); 
}); 

RegExp.test() method

Смежные вопросы