用DIV实现可扩展的input

我们在做前端时经常会遇到这样的需求:要求文本输入框可扩展。通常我们会想到使用textarea来代替input,但是textarea如果高度自适应时删除字符,高度不会立即改变到最小的高度。因此可以使用div来代替input。话不多说,直接上代码。以下代码完美实现了div来代替input,并模拟了input的placeholder属性。

HTML:
<div class="li-instead-input input_width7" placeholder="请输入报告结果" style="width: 516px;margin-top: 6px;" οnblur="assignValToInput(this)"></div>
<input type="hidden" name="report_result"/>

CSS:

.li-instead-input{
    border: 1px solid #DFDFDF;
    float: left !important;
    margin-bottom: 0!important;
    border-radius: 3px;
    padding: 0 6px;
    line-height: 30px!important;
    min-height: 33px;
    margin-top: 4px;
    word-wrap:break-word;
}
.li-instead-input:focus{
    border:1px solid deepskyblue !important;
    outline:none !important;
    -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(10, 176, 252, .6);
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(10, 176, 252, .6);
}
.li-instead-input:empty::before{
    color:lightgrey;
    content:attr(placeholder);
}

JS:

//将input中的值放到div中
function  assignInputToDiv() {
    var divObj = $(".li-instead-input");
    for(var i=0;i<divObj.length;i++){
        var targetInput = $(divObj[i]).next();
        if(targetInput.val() != null ){
            divObj[i].innerHTML = targetInput.val();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值