我有一个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");
    }


}


警报工作正常,但是在警报框消失之后。我可以继续输入标签,直到出现警告框。

我需要的是在输入了最后一个“,”的消息框后剪切文本

我希望我可以清楚地问我的问题。

谢谢

最佳答案

在设置值之前,可以使用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

07-24 14:45