2

我正在尝试以一种形式为“剩余字符数”创建一个计数器:

<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);
4

1 回答 1

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;
于 2012-04-18T01:02:22.357 回答