• 动态的在输入框边上显示可输入的剩余字符数


    在页面输入框的边上显示可输入的剩余字符长度。

    存在的问题:1、如果需要在校验长度的同时还需校验其他类型则会出现重复显示。2、动态提示框不能显示在下边,左边等边等,只能显示在右边。最好实现可以根据浏览器情况动态显示位置。

    function fetchOffset(obj) {
        var left_offset = obj.offsetLeft;
        var top_offset = obj.offsetTop;
        var width_offset =obj.offsetWidth;
        var height_offset = obj.offsetHeight;
        while((obj = obj.offsetParent) != null) {
            left_offset += obj.offsetLeft;
            top_offset += obj.offsetTop;
        }
        return { 'left' : left_offset, 'top' : top_offset,'width' :width_offset,'height':height_offset  };
    }

     

    var  __msgTimer=null;
    function CheckLength(src,min,max){
        src =$(src);
        if(src){
            var ___msgViewid="___msgView";
            var offset =fetchOffset(src);
            var ___msgView = $(___msgViewid);
            if(!___msgView){
                ___msgView = document.createElement("div");
                ___msgView.id=___msgViewid;
                ___msgView.style.position="absolute";
                ___msgView.style.color="red";
                ___msgView.style.background="white";
                document.body.appendChild(___msgView);
            }
            ___msgView.style.top =(offset.top+2)+"px";
            ___msgView.style.left=(offset.left + offset.width)+"px";
            var __msg= "";
            var curLen=src.value.len();
         //   window.status =curLen + "top:" +___msgView.style.top +"|left:"+___msgView.style.left;
            if(min && min>0 && min > curLen){
                __msg ="长度必须不少于"+min+"位";
                window.clearTimeout(__msgTimer);
            }
            else if(max && max >0 && max <curLen)
            {
                __msg ="长度不能大于"+max+"位";
                 window.clearTimeout(__msgTimer);
            }
            else if(max && max >0 && max >curLen){
                __msg ="还可以输入"+(max -curLen)+"个字符";
            }
            else
            {
                __msg  ="已达到允许的最大长度";
                window.clearTimeout(__msgTimer);
                __msgTimer=window.setTimeout(function(){___msgView.style.display='none';},3000);
            }
            ___msgView.style.display="block";
            ___msgView.innerHTML =__msg;
        }
        else
        {
            window.status ="深潭碧波,寂清静宁!";
        }
    }

    页面上调用方式:

    <asp:TextBox ID="txt_Password" runat="server" onkeyup="CheckLength(this,6,20);" TextMode="Password"
                   MaxLength="20"></asp:TextBox>

  • 相关阅读:
    vue中Axios的封装和API接口的管理
    如何配置Webpack/Vue-CLI实现前端跨域(附跨域大全)
    前端面试几个重要知识点
    js常用函数
    JS中的枚举和不可枚举
    可配置性属性和不可配置性属性
    Object.create()和深拷贝
    JavaScript 中 call()、apply()、bind() 的用法
    从深入到通俗:Object.prototype.toString.call()
    js原生实现三级联动下拉菜单
  • 原文地址:https://www.cnblogs.com/68681395/p/1409828.html
Copyright © 2020-2023  润新知