项目上需要一个文件重命名功能,就像百度网盘的文件重命名一样,只选中文件名不选中后缀:
这样子:
代码如下:
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);
})