Не исчезает сообщение об ошибке после прохождения длины 3 символа - PullRequest
1 голос
/ 12 мая 2011
<form id="createtableform" method="post" action="">
  <p>
    Masa ismi :
    <input type="text" name="name" id="tablename" />
  </p>
  <p>
    <input type="submit" name="submit" id="submit" value="submit" />
  </p>
</form>
<div id="error"></div>

$('#tablename').focus();
$('#error').fadeOut(500);
$('#tablename').keyup(function(){
var tablename = $('#tablename').length;

if( tablename <= 3){

$('#error').html('Min 3 characters please');
$('#error').fadeIn(500);
}
if( tablename > 3){
$('#error').fadeOut(500);
}
});

почему это не исчезает после того, как я прохожу 3 символа?

jsfiddle: http://jsfiddle.net/bMJqH/3/

Ответы [ 2 ]

4 голосов
/ 12 мая 2011

Вы получаете длину массива совпадающих элементов вместо длины текста внутри поля.

Изменение:

var tablename = $('#tablename').length;

В:

var tablename = $('#tablename').val().length;

Обновленная скрипта: http://jsfiddle.net/bMJqH/4/

Кроме того, взгляните на API о свойстве length.

0 голосов
/ 12 мая 2011

попробуйте это:

$('#tablename').keyup(function(){

    var tablename = $('#tablename').val().length;

    if( tablename <= 3){
        $('#error').html('Min 3 characters please');
        $('#error').fadeIn(500);
    } else {
        $('#error').fadeOut(500);
    }

});
...