2011-01-23 15 views
1

私は変数をテキストボックスの値に等しくしようとしています。テキストボックスの値を変数に設定してアラートとして返しますが、他の関数からその変数を呼び出す方法はわかりません。jqueryは入力への入力値を返します

$('#max_char').keyup(function() { 
    var max_char = $(this).val(); 
    alert(max_char + ' Handler for .keyup() called.'); 
}); 

var count_options = { 
    'maxCharacterSize': max_char, 
    'originalStyle': 'originalDisplayInfo', 
    'warningStyle': 'warningDisplayInfo', 
    'warningNumber': 40, 
    'displayFormat': '#input Characters | #left Characters Left | #words Words' 
}; 

$('#textinput').textareaCount(count_options); 
}); 

HTML

<textarea cols="68" rows="21" name="textinput" id="textinput"></textarea><br/> 
    <input type="textbox" id="max_char" name="max_char" value="-1" /> Max Characters <br/> 

すべてのヘルプは素晴らしいことです。

var max_char; 

$('#max_char').keyup(function() { 
    max_char = +$(this).val(); 
    alert(max_char + ' Handler for .keyup() called.'); 
}); 

はまたことに注意してください:あなたがする必要があるのは、すなわちからkeyup機能の外、高い範囲でmax_charを宣言されcount_options

答えて

4

のmaxCharacterSizeにするvar max_charを追加しようとしています"1" + 1 == "11"以降、$(this).val()の前に+を置き、文字列から数値に変換します。


更新:それは一度、準備文書に初期化されるので、

textareaCountプラグインが動作しない理由はあります。現時点では、ユーザーが何も入力していないため、max_charは何もありません。

あなたが後になっている効果を得るには、すべてのキーアップでプラグインを再設定するか再初期化する必要があります。残念ながら、プラグインはこれを行う簡単な方法を文書化していません。プラグインのソースコードを掘り下げた後、元に戻す必要のあるイベントは3つしかないと思います。これを試してみてください:あなたがまたはJavaScript

のグローバルスコープ内VARを宣言した場合、私は、正しくあなたを理解していれば

var count_options = { 
    'maxCharacterSize': 100, // Just some default value 
    'originalStyle': 'originalDisplayInfo', 
    'warningStyle': 'warningDisplayInfo', 
    'warningNumber': 40, 
    'displayFormat': '#input Characters | #left Characters Left | #words Words' 
}; 

// Initialise the plugin on document ready 
$('#textinput').textareaCount(count_options); 

$('#max_char').keyup(function() { 
    var max_char = +$(this).val(); 
    count_options.maxCharacterSize = max_char; 

    // Unbind the 3 events the plugin uses before initialising it 
    $('#textinput') 
     .next('.charleft').remove().end() 
     .unbind('keyup').unbind('mouseover').unbind('paste') 
     .textareaCount(count_options); 
}); 
+0

ヒュムと入力にアクセスしている場合...これはまだ私のために働いていない。私はそれがプラグインの問題かどうか疑問に思います。http://roy-jin.appspot.com/jsp/textareaCounter.jsp – BandonRandon

+0

@Bandon、私は問題を見つけたと思います。私の更新された答えを見てください。 –

+0

これはうまくいったが、それぞれのキーアップで値を再初期化し、 "#input Characters | #left Characters Left | #words Words"という新しい行を追加すると、もう1つのプラグインを試してみることもできる。私が見つけた最初のものだけではありません。 – BandonRandon

0
parseInt($('#max_char').val()) 
2

あなたが直接

$("#max_char").val() 
+0

+1、私はキーアップバインディング全体がおそらく必要ないことに気づいていませんでした。 –

+0

私はbind on keyupを使用して、ユーザー入力で動的に変更されるようにしました。 – BandonRandon

関連する問題