【发布时间】:2016-03-31 09:02:57
【问题描述】:
我有文本输入和文本区域,我想向用户显示他们使用了多少字符超出了限制。因此,我为每个具有 data-maxlength 属性的元素添加了一个工具提示。每次按下一个键时,我都会为当前文本输入创建包含长度和最大长度值(x / 250 个字符)的工具提示。问题是在您第一次停止输入后,工具提示的 title 属性的值永远不会改变。这是一个jsFiddle 向您展示。
jQuery
$(document).ready(function(){
$('[data-maxlength]').each(function(){
$(this).on('keyup', function(){
$(this).tooltip({
selector: 'data-toggle="tooltip"',
placement: 'bottom',
trigger: 'manual',
title: $(this).val().length + ' / ' + $(this).data('maxlength') + ' characters used.'
});
$(this).tooltip('show');
});
});
});
HTML:
<textarea name="description" data-maxlength="250"></textarea>
感谢您的宝贵时间。
【问题讨论】:
-
请注意:当您跟踪输入更改时,最好使用
input事件而不是keyup,如果您仍然按下某个键,您会看到工具提示标题不会正确更改。 -
@ZakariaAcharki:这在这里不起作用,因为 OP 希望向用户显示在输入字段中输入/删除的每个字符的字符限制,这只有通过
keyup事件才有可能为change事件仅在焦点移出当前字段时触发。 -
不确定你的意思@dreamweiver,但确定它会起作用,jsfiddle.net/vw49te7d/7。
-
@ZakariaAcharki:我的错误兄弟,我误解了
input事件为change。你的建议是有效的:)
标签: javascript jquery twitter-bootstrap