1

我正在尝试使变量等于文本框的值。我将文本框值设置为一个变量并作为警报返回(目前),但我不知道如何从其他函数调用该变量。

$('#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

4

3 回答 3

4

您需要做的就是max_char在更高的范围内声明,即在 keyup 函数之外

var max_char;

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

另请注意,我将 a+放在前面$(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);
});
于 2011-01-23T04:00:31.130 回答
2

如果我理解正确,如果您在 javascript 的全局范围内声明 var

或者,如果您直接使用

$("#max_char").val()
于 2011-01-23T04:01:02.907 回答
0
parseInt($('#max_char').val())
于 2011-01-23T03:59:05.660 回答