我正在尝试使变量等于文本框的值。我将文本框值设置为变量并作为警报返回(暂时),但我无法弄清楚如何从其他函数调用该变量。
$('#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添加到count_options
的maxCharacterSize答案 0 :(得分:4)
您需要做的就是在更高的范围内声明max_char
,即在键盘功能的外:
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);
});
答案 1 :(得分:2)
如果我理解正确,如果你在全局javascript范围内声明var
或者如果您使用
直接访问输入$("#max_char").val()
答案 2 :(得分:0)
parseInt($('#max_char').val())