添加JQuery引用中断标记输入

时间:2017-09-04 20:29:45

标签: javascript jquery bootstrap-tags-input

我正在使用带有不错标签输入的模板,但我现在希望能够根据特定条件计算单词数量并限制单词数量,但是,这是我唯一的方法。发现这样做是通过使用特定textboxfor的keyup,但要做到这一点,我需要引用JQuery,但然后它打破我的标签输入。以下是我目前的情况:

@Html.TextBoxFor(model => model.EmploymentSkills, new { @id = "tags", @class = "form-control tagsinput", @type = "text", @placeholder = "Add skill and press enter", data_role = "tagsinput" })

<script src="~/SmartAdmin/scripts/plugin/bootstrap-tags/bootstrap-tagsinput.min.js"></script>

有没有办法可以通过引用JQuery来实现这一点,或者能够引用它而不会破坏我的标签输入?

2 个答案:

答案 0 :(得分:0)

是否存在具有data_role属性的特定内容?只要我记得你应该把所有属性都放在@中,如果使用XPath。尝试将data_role = 'tagsinput'替换为@data-role = 'tagsinput'。也许这会导致这个问题。

答案 1 :(得分:0)

所以我找到了解决方法。如上所述,.keyup或.keydown没有用,所以我使用.change进行了升级。这是我使用的功能,也计算单词的数量并限制它们:

$(document).ready(function(){

    $(".tagsinput").change(function (e) {
        var value = $(this).val().replace(" ", "");
        var words = value.split(",");

        if (words.length > '@Model.TagsAllowed') {
            alert("You are not allowed more than '@Model.TagsAllowed' tags!");

            var lastword = value.split(",").pop();
            value = value.replace(',' + lastword, '');
            $(this).val(value);
            $('.tagsinput').val() = value.substring(0, value.length - lastword.length);
        }
    });
})

希望这可以帮助其他任何地方的人。