jQuery实现当文字过多时,完成输入后(失去焦点),显示输入的前面的文字,隐藏后面的文字
与百度搜索条一样。当输入的文字过多时:,当搜索条失去焦点时:即显示最先输入的部分,当搜索条再次获得焦点时:光标位于最后输入的地方并且选中这些文字。这样的功能怎么实现?...
与百度搜索条一样。
当输入的文字过多时:
,
当搜索条失去焦点时:
即显示最先输入的部分,
当搜索条再次获得焦点时:
光标位于最后输入的地方并且选中这些文字。
这样的功能怎么实现? 展开
当输入的文字过多时:
,
当搜索条失去焦点时:
即显示最先输入的部分,
当搜索条再次获得焦点时:
光标位于最后输入的地方并且选中这些文字。
这样的功能怎么实现? 展开
3个回答
2014-12-24 · 知道合伙人互联网行家
关注
展开全部
首先,select选中的时候,默认是光标从头开始,所以你的第三点是矛盾的,要么光标在最后,
要么选中(光标在前)。
下面附带测试代码:
<!DOCTYPE html>
<html>
<head>
<title>AAA</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
</head>
<body>
<script type="text/javascript" src="http://www.zjmainstay.cn/jquery/jquery-1.8.2.min.js"></script>
<input type="text" size="10" id="test" value="01234567890123456789" />
<script type="text/javascript">
$.fn.setCursorPosition = function(position){
if(this.lengh == 0) return this;
return $(this).setSelection(position, position);
}
$.fn.setSelection = function(selectionStart, selectionEnd) {
if(this.lengh == 0) return this;
input = this[0];
if (input.createTextRange) {
var range = input.createTextRange();
range.collapse(true);
range.moveEnd('character', selectionEnd);
range.moveStart('character', selectionStart);
range.select();
} else if (input.setSelectionRange) {
input.focus();
input.setSelectionRange(selectionStart, selectionEnd);
}
return this;
}
$.fn.focusEnd = function(){
this.setCursorPosition(this.val().length);
return this;
}
$(document).ready(function(){
$("#test").blur( function() {
$(this).setSelection(0,0);
} );
$("#test").focus( function() {
$(this).focusEnd();
//$(this).select();
} );
});
</script>
</body>
</html>
更多追问追答
追问
你的这个代码,我测试了一下,发现点击输入框输入文字后,不能点击其他东西了,焦点一直在输入框那里
追答
什么叫不能点击其他东西?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<input id="input1" type="text" value="123456789789" >
<script>
var inp=$("#input1")
inp.on('click',function(){
inp.select();
});
</script>
更多追问追答
追问
第二个条件没有达到,即当输入框失去焦点时,输入框显示最先输入的文字(文字过多超过输入框显示的情况下)
追答
第二个是浏览器的默认行为,不需要自己设置的,你用的什么浏览器,截图来看下
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
刚测试了一下,正常的input框就是这样子的呀,这个主要和浏览器有关,您可以换个浏览器试试。
你的这个截图应该是百度的浏览器插件吧,不是百度的搜索框
你的这个截图应该是百度的浏览器插件吧,不是百度的搜索框
追问
不是这样的哦,input不设置的话,输入的时候确实是那样的,可是失去焦点时显示的是最后输入的部分,并且用光标调整查看文字的情况下,失去焦点时显示的是当时看到的文字部分。另外,这个只是一个例子,说明这三种情况。我想要的是实现这三种情况的功能,在大部分浏览器上。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询