2017-03-16 92 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/ –