【问题标题】:Limit text area value and cut the rest限制文本区域值并剪切其余部分
【发布时间】:2010-06-07 16:16:49
【问题描述】:

我有一个文本区域,用户可以输入一些标签。 我需要将此标签限制为 20 个标签。

标签可以这样输入

ma​​ytag1,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");
    }


}

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

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

我希望我能清楚地提出我的问题。

谢谢

【问题讨论】:

    标签: javascript jquery textarea


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      拦截“,”按下,并检查用户到目前为止插入了多少条目。如果他试图插入太多条目,请阻止进一步插入。

      $('input[type=text][name=tags]').keyup(function(e) {
          if((e.keyCode == 188) && ($(this).val().split(",").length > 19)) {
              alert('Only 20 Tags allowed');
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-01
        • 2022-05-25
        • 2015-01-03
        • 2013-07-07
        • 1970-01-01
        • 2014-05-01
        • 2015-12-16
        相关资源
        最近更新 更多