限制文本区域值并剪切其余值

时间:2010-06-07 08:02:04

标签: javascript jquery textarea

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


}

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

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

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

由于

2 个答案:

答案 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');
    }
});