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 に答える