Input length limitation (Vue自定义指令)

记录一下vue.js 自定义指令 -- 输入框字数长度限制

//css
.valLengthCounter {
    position: absolute;
    right: 5px;
    font-size: 12px;
    color: #888;
    display: none;
}
//JavaScript
Vue.directive('limitation', {
    bind: function(el, binding) {
    },
    inserted: function(el, binding) {
        $(el).css('transition',' all 0.3s')
        $(el).css('width',' 100%')
        var counter = $("<span class='valLengthCounter '></span>")
        $(el).attr('maxlength', binding.value)
        $(el).parent('div').css({
            'position': 'relative',
            'display': 'flex',
            'align-items': 'center',
            'justify-content': 'space-between'
        })
        $(el).parent('div').append(counter)
        $(el).siblings('.valLengthCounter').text($(el).val().length + '/' + binding.value)
        el.addEventListener('keyup', function() {
            curLength = $(el).val().length
            $(el).siblings('.valLengthCounter').text($(el).val().length + '/' + binding.value)
        })
        el.addEventListener("focus", function() {
            $(el).siblings('.valLengthCounter').fadeIn(300)
                // cleaner.css('right', counter.width() + 30)
            $(el).css('paddingRight', $(el).siblings('.valLengthCounter').width() + 20)
        })
        el.addEventListener("blur", function() {
            $(el).siblings('.valLengthCounter').fadeOut(300)
                // cleaner.css('right', 5)
            $(el).css('paddingRight', 0)
        })
    }
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容