项目上需要一个文件重命名功能,就像百度网盘的文件重命名一样,只选中文件名不选中后缀:
这样子:

代码如下:

html部分

<a class="a" id="a">点击重命名文件名</a>  
<input type="text" id="t2" value="sadasdasdasdasd.doc" name="x" />  

js部分:

//selectionStart:起始选中位置,selectionEnd:结束选中位置  
$.fn.setSelection = function(selectionStart, selectionEnd) {  
 if(this.length == 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;  
}  

$(".a").click(function(){  
 var str = $("#t2").val();  
 var index = str.replace(/.*(\\.\[^\\.\]+)$/, '$1').length;//文件名里后缀+"."的长度;  
 var allin=str.length-index; //总字符长度- 后缀长度=需要选中部分的长度  
 $("#t2").setSelection(0,allin);  
})