2011-05-12 23 views
1
<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個字符後不會淡出?傳遞3個字符長度後不會淡出錯誤消息

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

+0

因爲$(「#表名」)長度爲0或1,因爲ID是唯一 – Val

+0

需要學會使用內置的調試工具。 Chrome瀏覽器非常簡單,只需添加手錶元素和斷點就沒有問題。這個問題很愚蠢。 – ppumkin

回答

4

你得到匹配的元素,而不是文本的長度領域內的數組的長度。

變化:

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

要:

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

更新小提琴:http://jsfiddle.net/bMJqH/4/

此外,have a look at the API有關length財產。

+0

謝謝!!!!我一直在編碼這麼長時間,我不能再看到這樣的小錯誤了:S – Logan

+0

@Logan:http://en.wikipedia.org/wiki/Brain_fart :)? – Kevin

+0

xD是的確.. – Logan

0

試試這個:

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

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

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

}); 
+0

@Logan凱文是100%的權利。我發佈最小化一些行的代碼。 – thecodeparadox