2012-04-18 21 views
2

我試圖做出「左字符數」一櫃的形式:是否有可能創建一個可以使用選擇器名稱的jQuery函數?

<input type="text" id='username_input'> 
<input type="text" id='password_input'> 

是否有可能使其參數將成爲選擇的一部分的功能? 因此,您可以更好地理解我的問題,我將向您展示我做的一個示例,但這不起作用。

我想要做的事情看起來很明顯。這意味着我必須標準化所有的ID。 我知道我可以在函數中創建一個maxChar參數,但是我留下了我的錯誤field+'_maxChar',這樣就可以告訴我爲什麼這是不可能的。很多提前

var username_maxChar=20,password_maxChar=30; 

function countLeft(field,minCharacters){ 
$('#'+field+'_input').keyup(function(){ 
    var input_length = $('#'+field+'_input').val().length; 
    var input_count = field+'_maxChar' - input_length; 
    $('#'+field+'_counter').text(input_count); 


    }); 
    } 

countLeft(username,6); 
+1

的'maxlength'屬性是專門用於設定字符的最大數量設置。爲什麼不使用它呢?然後它將成爲''的一部分,並且可以直接從屬性中讀取。 – mellamokb 2012-04-18 01:02:10

+0

嗨,謝謝你的迴應。事實上,獲得maxlength屬性似乎更合適。 Regards – alexx0186 2012-04-18 01:09:13

回答

3

既然你已經使用功能範圍之外的var關鍵字定義這些

感謝,他們成爲window對象的屬性,可以與[]符號來訪問:

var input_count = window[field + '_maxChar'] - input_length; 

但是,您可能會考慮只使用maxlength屬性:

<input type="text" id='username_input' maxlength='20'> 
<input type="text" id='password_input' maxlength='30'> 

這些都可以將jQuery經由.attr()

var input_count = $('#' + field + '_input').attr('maxlength') - input.length; 
+0

嗨,感謝您的回覆。是的,謝謝你的提示語法。我可能會使用maxlength,因爲我已經在自己的代碼中使用它了。非常感謝 – alexx0186 2012-04-18 01:08:23

相關問題