我正在使用此插件计算输入和textareas上的字符:http://cssglobe.com/post/7161/jquery-plugin-simplest-twitterlike-dynamic-character-count-for-textareas
我需要在设置“contentEditable”设置为True的DIV中计算字符数。
这可能会修改这个插件吗?
我想我需要改变这一行:
var count = $(obj).val().length;
但我真的不知道contentEditable是如何工作的......任何想法?
谢谢!
编辑:
我这样做是因为brettz9建议:
var method = $.inArray(obj.nodeName.toLowerCase(), ['textarea', 'input']) !== -1 ? 'val' : 'text';
var count = $(obj)[method]().length;
我对其他字段执行此操作时遇到一个小问题我需要最小/最大长度(我有一个输入和一个contentEditable)
这是条件部分:
if (other_required){
if ($(other_required).val().length > 0 && available >= 0){
$(submit_button).attr("disabled", "");
} else {
$(submit_button).attr("disabled", "disabled");
}
我不知道如何声明[method] var并将其与“other_required”一起使用
答案 0 :(得分:4)
val()
用于获取输入值,例如textarea,textbox等。请尝试使用text()
。
编辑:
试试这个:
function count(obj) {
var method = $.inArray(obj.nodeName.toLowerCase(),
['textarea', 'input']) !== -1 ? 'val' : 'text';
return $(obj)[method]().length;
}
你的代码看起来像是:
if (other_required){
if (count(other_required) > 0 && available >= 0){
$(submit_button).attr("disabled", "");
} else {
$(submit_button).attr("disabled", "disabled");
}
答案 1 :(得分:1)
你可以这样做:
// We'll assume it is contenteditable (which uses text, or could also use html (innerHTML) if you wanted to count markup length)
// if it is not a textarea or input (which uses value)
var method = $.inArray(obj.nodeName.toLowerCase(), ['textarea', 'input']) !== -1 ? 'val' : 'text';
var count = $(obj)[method]().length;