我有一个textarea,用户可以输入一些标签。 我需要将此标记限制为20个标记。
标签可以这样进入
maytag1,mytag2,MyTag3中
我写的是这个功能
function limitTags()
{
var tags = $("input[type=text][name=tags]").val()
var tag = $.trim(tags);
var selected = new Array();
/**
* replace the last ','
*/
if(tag.substring(tag.length - 1) == ",")
{
*///tag = tag.replace(tag.length - 1, '');
}
var enteredTags = tag.split(",");
if( enteredTags.length > 20 )
{
//$("input[type=text][name=tags]").val(enteredTags.join(",", enteredTags));
alert("Only 20 Tags allowed");
}
}
警报工作正常,但警报框消失后。我可以继续输入标签,直到出现警告框。
我需要的是在输入的消息框之后剪切文本也是最后一个“,”
我希望我可以清楚地问我的问题。
由于
答案 0 :(得分:2)
在设置值之前,您可以使用slice
方法将数组减少到20个条目:
$("input[type=text][name=tags]").val(enteredTags.slice(0,20).join(","));
请参阅:https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/Array/Slice
答案 1 :(得分:1)
拦截“,”按,并检查用户目前插入的条目数。如果他试图插入太多条目,则阻止进一步插入。
$('input[type=text][name=tags]').keyup(function(e) {
if((e.keyCode == 188) && ($(this).val().split(",").length > 19)) {
alert('Only 20 Tags allowed');
}
});