console
layui.use(['form'], function() {
var form = layui.form;
count = function(e) {
if (!e) return this;
var r;
e.get ? r = e.get(0) : (r = e, e = $(e));
var a = r.tagName.toLowerCase();
if ("input" != a && "textarea" != a) return this;
var i = e.attr("minlength") || 0,
n = r.maxlength || e.attr("maxlength");
if (!i && !n) return this;
n = n.replace(/\D/g, "");
var o, l, s = "ui-" + a,
u = s + "-x",
d = s + "-count";
if (e.hasClass(s)) return this;
if (0 == e.parent("." + u).length) return this;
var c = r.id;
c || (c = "id" + (Math.random() + "").replace(/\D/g, ""), r.id = c),
0 == (o = e.parent().find("." + d)).length ? (o = $('<label for="' + c + '" class="ui-' + a + '-count"> <span>' + i + "</span>/<span>" + n + "</span> </label>"), e.parent().append(o)) : o.attr("for", c),
l = o.find("span").eq(0);
var h = function() {
var e = getLength(r);
l.html(e),
e > n ? l.addClass("red") : l.removeClass("red")
};
return e.data("countBind") || ("oninput" in document.createElement("div") ? e.bind("input", function() {
h()
}) : r.attachEvent("onpropertychange", function(t) {
t && "value" == t.propertyName && h()
}), e.data("countBind", !0)),
h(),
this
},
getLength = function(e, r) {
if ("password" == e.type) return r || e.value.length;
var a = e.getAttribute("lang"),
i = $.trim(e.value);
if (!a) return r || i.length;
if ("" == i) return 0;
var n = 1,
o = 1;
if (/zh/i.test(a) ? o = .5 : /en/i.test(a) && (n = 2), r) {
var l = 0,
s = r;
return t.each(i.split(""), function(t, e) {
l >= r || (/[\x00-\xff]/.test(e) ? l += o: l += n, l >= r && (s = t + 1))
}),
s
}
var u = i.replace(/[\x00-\xff]/g, "").length,
d = i.length - u;
return Math.ceil(d * o) + Math.ceil(u * n)
}
countInput = function() {
$("#materialSupply").find(".ui-input-x > input, .ui-textarea-x > textarea").each(function() {
var e = $(this),
r = e.attr("maxlength");
if (r) try {
e.attr("maxlength", "_" + r + "_")
} catch(a) {
e.removeAttr("maxlength")[0].maxlength = r
}
count(e)
})
}
countInput();
})
<div class="layui-fluid">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-header">
设置我的信息
</div>
<div class="layui-card-body" pad15>
<form class="layui-form" lay-filter="materialSupply" id="materialSupply">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">
备注
</label>
<div class="layui-input-block ui-textarea-x">
<textarea id="forIntroArea" name="description" maxlength="_140_" placeholder="可以简单的描述自己"
class="layui-textarea">
</textarea>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
.ui-textarea-x {
position: relative;
overflow: hidden;
padding: 2px 9px 32px 3px;
}
.ui-textarea-x>.textarea,
.ui-textarea-x>textarea {
font-size: 14px;
line-height: 20px;
position: relative;
z-index: 1;
right: -6px;
display: block;
overflow: auto;
width: 100%;
padding: 7px 0 9px;
resize: none;
word-break: break-all;
color: #3e3d43;
border: 0 none;
outline: 0;
background: 0 0;
}
.ui-textarea-x>.ui-textarea {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
-webkit-transition: border-color .15s, background-color .15s;
transition: border-color .15s, background-color .15s;
border: 1px solid #e0deda;
background-color: #fff;
}
.ui-textarea-count {
font-size: 12px;
line-height: 32px;
position: absolute;
z-index: 1;
right: 10px;
bottom: 0;
left: 8px;
text-align: right;
color: #a6a6a6;
}
.red {
color: #bf2c24;
}