2012-11-16 14 views
10

http://jsfiddle.net/adamadam123/gEEVM/4/jQuery सेट Textarea कर्सर पाठ

मैं एक चैट प्रणाली उपयोगकर्ताओं इमोटिकॉन जोड़ने की अनुमति देता है कि निर्माण कर रहा हूँ के अंत तक।

बस jsfiddler उदाहरण की तरह ऊपर मैं, पाठ क्षेत्र में मौजूदा पाठ ले चुना इमोटिकॉन प्रतीक के साथ संयोजित और फिर इस पाठ पाठ क्षेत्र में वापस जोड़ सकते हैं।

$(function() { 
    var data = $('textarea').val(); 
    var emoticon = ':)'; 
    $('textarea').val(data + emoticon); 
    $('textarea').focus(); 
}); 

समस्या जब मैं ध्यान केंद्रित पाठ क्षेत्र में वापस सेट कर्सर पाठ की शुरुआत में है।

मैं कर्सर को टेक्स्ट के अंत में कैसे सेट कर सकता हूं - आगे टाइपिंग की अनुमति देने के लिए?

$(function() { 
    var data = $('textarea').val(); 
    var emoticon = ':)'; 
    $('textarea').focus().val('').val(data + emoticon); 
}); 
+1

संभावित डुप्लिकेट: http://stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area –

उत्तर

29

कुछ सरल आप कर सकते हैं पाठ क्षेत्र का मान रीसेट है। इस JSFiddle

$('textarea').focus(); 
$('textarea').val("New Text"); 

एक और तरीका है .focus बाद में जोड़ने के लिए है वैसे ही जैसे();

$('textarea').val($('textarea').val() + ' '); 

यह पाठ क्षेत्र के अंत में एक अंतरिक्ष कहते हैं इस प्रकार अंत में केंद्रित है।

7

सबसे पहले ध्यान केंद्रित है, तो सेट मूल्य:

0

आप इस सवाल समीक्षा करनी चाहिए:

jQuery Set Cursor Position in Text Area

वहाँ से अधिकांश सुरुचिपूर्ण JQuery समाधान:

$.fn.selectRange = function(start, end) { 
    return this.each(function() { 
     if (this.setSelectionRange) { 
      this.focus(); 
      this.setSelectionRange(start, end); 
     } else if (this.createTextRange) { 
      var range = this.createTextRange(); 
      range.collapse(true); 
      range.moveEnd('character', end); 
      range.moveStart('character', start); 
      range.select(); 
     } 
    }); 
}; 
इस के साथ

, आप कर सकते हैं

$('#elem').selectRange(3,5); 
1

बहुत सरल समाधान।

var emoticon = ':)'; 
var val = $('#textarea').val(); 
$('#textarea').select().val(val + emoticon); 
संबंधित मुद्दे