2017-03-16 91 views
0

我试图设置焦点后,我在textarea,preready包含一些内容prepend一些东西。以my fiddle为例,说明迄今为止所做的一切。如果我在prepend之后添加.focus(),它只会在textarea的末尾添加焦点。不是在我想实现的第一条线之后。textarea第一行前设置焦点

$(document).ready(function(){ 
// GET USER 
var signedInUser = document.getElementById('zz4_Menu').innerHTML; 
var end = signedInUser.indexOf('<'); 
var signedByUser = signedInUser.substring(6, end); 

// DEFINE DATE 
Date.prototype.getMinutesTwoDigits = function(){ 
    var retval = this.getMinutes(); 
    if (retval < 10){return ("0" + retval.toString());} 
    else{return retval.toString();} 
} 
var timeStamp = new Date(); 
var currenttimeStamp = timeStamp.toLocaleDateString() + ', ' + timeStamp.getHours() + ":" + timeStamp.getMinutesTwoDigits(); 

// ADD BUTTON BEFORE TEXTBOX 
$('#textarea').before('<p><a href="#" id="workLogBtn">Signer</a></p>'); 

// ADD DETAILS TO TEXTBOX 
    $('#workLogBtn').click(function(){ 
    $('#textarea').prepend(currenttimeStamp + '(' + signedByUser + ')' + ' - ' + '\n\n').focus(); 
    }); 
}); 

这是我到目前为止的代码。

My fiddle

回答

0

设置,您可以使用一个函数的指针位置:

$.fn.setCursorPosition = function(pos) { 
    this.each(function(index, elem) { 
    if (elem.setSelectionRange) { 
     elem.setSelectionRange(pos, pos); 
    } else if (elem.createTextRange) { 
     var range = elem.createTextRange(); 
     range.collapse(true); 
     range.moveEnd('character', pos); 
     range.moveStart('character', pos); 
     range.select(); 
    } 
    }); 
    return this; 
}; 

例如如何使用:

$('#textarea').setCursorPosition(5); 
+0

那什么也没做。我做错了什么? https://jsfiddle.net/johneilif/bmox4ceh/ –