Все, что вам нужно сделать, это объявить max_char
в более высоком объеме, то есть вне функции keyup:
var max_char;
$('#max_char').keyup(function () {
max_char = +$(this).val();
alert(max_char + ' Handler for .keyup() called.');
});
Также обратите внимание, что я поставил +
вперед $(this).val()
для преобразования его из строки в число, так как "1" + 1 == "11"
.
Обновление :
Причина плагина textareaCount
не работает, потому что он инициализирован один раз , на документ готов.В настоящее время max_char
- это ничто, потому что пользователь еще ничего не набрал.
Вам потребуется либо перенастроить, либо повторно инициализировать плагин для каждой клавиши, чтобы получить желаемый эффект.К сожалению, плагин не документирует простой способ сделать это.После изучения исходного кода плагина, я думаю, что есть только 3 события, с которыми он связывается, которые необходимо отменить, прежде чем вы сможете просто повторно инициализировать его снова.Попробуйте это:
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);
});