input长度随输入内容动态变化 input光标定位在最右侧

<input type="text" οnkeydοwn="this.onkeyup();" οnkeyup="this.size=(this.value.length>4?this.value.length:4);" size="4"> 

<input type="text">的默认size就是20 

如果你在style里定义了width属性,又要让它的width根据内容来变化,两个要求不就矛盾了吗.所以这里不能在style里定义width属性.

function len(s) { //获取输入文本长度,字符占一位,汉字两位
var l = 0;
var a = s.split("");
for (var i=0;i<a.length;i++) {
if (a[i].charCodeAt(0)<299) {
l++;
} else {
l+=2;
}
}
return l;
}
或者将中文替换成两个字符
var str_temp = $(".tag_input").val().replace(/[\u4e00-\u9fa5]/g, 'aa');
$(".tag_input").attr("size",str_temp.length);
$(".tag_input").width("auto");

jq:

$(function(){

                //propertychange监听input里面的字符变化,属性改变事件
                $( '.zy-price' ).bind( 'input propertychange' function () {
                    var  $ this  = $( this );
                    console.log($ this );
                    var  text_length = $ this .val().length; //获取当前文本框的长度
                    var  current_width = parseInt(text_length) *16; //该16是改变前的宽度除以当前字符串的长度,算出每个字符的长度
                    console.log(current_width)
                    $ this .css( "width" ,current_width+ "px" );
                });
            })
 
实现input光标定位在最后一位:
方法:给input重新赋值
$(".tag_input").focus();
$(".tag_input").val('');
$(".tag_input").val($(this).text());

转载于:https://www.cnblogs.com/cina33blogs/p/6738712.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值