是否可以创建一个jQuery函数来播放选择器的名称?

时间:2012-04-18 00:58:27

标签: javascript 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 个答案:

答案 0 :(得分: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'>

这些可通过.attr()

提供给jQuery
var input_count = $('#' + field + '_input').attr('maxlength') - input.length;