Function To Insert Tags At Cursor Position / Around Selection
Nov 4, 2006
I'm looking for a function that I can use which will do the following when the mouse cursor is in a textarea:
know which textarea to work with based on current cursor position (not sure if this possible, couldn't find examples) - i.e. just 1 'Bold' button to operate on multiple textareas.
insert tag or tags (i.e. ,[image]) at cursor position, if text is selected then insert tags around text selection.
I have a script that inserts a Smiley into a textarea for a forum script I'm working on.It works, except that the insertion will only appear at the end of all the existing text.Is there some way to have the smiley insert at the cursor point?
Code: function AddText(form, Action){ var AddTxt="";
I'm not very well versed in javascript. I'm trying to make a bookmarklet that when I click it will either append text to what I've already written or insert the predefined text at the cursor's position in a textarea. Also the browser I'm trying to do this on is Chromium.
Here's what I have:javascript:void((function(){document.getElementsByTagName('textarea')[0].value='ಠ_ಠ'})())
but this of course changes the entire value of the text field to: ಠ_ಠ ...rather than appending or inserting at the cursor position. I'm guessing append would be the simplest, though cursor position would be most efficient.
I am currently adding BBCode to my website, and I posted a while ago in this forum for a script that would add tags to my textarea when clicking an BBcode image. But my next problem now is that I need those tags to appear around selected text and at the mouse cursor if no text is selected. Currently all it does is just add the tags at the end of your sentence if you've written something in the textarea. Here is the code I use: function lolwut(txt)
{ var ta = document.getElementById("my_ta"); ta.value += txt; } window.onload = function() { lolwut(""); }
I have created a nice blog form for my users and I would like them to be able to use some aspects of HTML code that I have styled and they can utilise. The way I have this set up at the moment is, much like th reply boxes here, they can click on a button and the code (such as ) is automatically added to the textarea. The problem I have at the moment is that the cursor goes to the end of the content written so far and places whatever they have clicked at the end. I would like to be able to detect the cursor position and then they can add the various tags where they want them.
Also, is there a way I can get the cursor to automatically sit between the opening and closing tags that are generated (as can be seen here)??
function writeCodeTag(code) { var cache = document.getElementById('f').article.value; this.code = code; document.getElementById('f').article.value = cache + code; document.getElementById('f').article.focus(); }
This function adds the various code tags to the textarea... I have the same sort of thing for smilies.
If the user presses enter and their cursor is in the middle of a <p>, i want to insert a <br> tag. If their cursor is at the end of the <p> tag's innerHTML, then i want to insert a new <p> tag.
I can insert both tags as I need, but I can't find a way to get the position of the cursor relative to its containing tag (just assuming there's no other markup in the <p>'s innerHTML, so that selection.parentElement() will return the <p> tag).
How to add a function that will add some text in textarea, when someone clicks on button, where the cursor is?(Like here, on daniweb textareas!)eg. There is bold button! The user clicks on it, and the text "[BOLD][/BOLD]" writes where curser/caret is. Cursor/caret (|) is focused between these two elements "[BOLD]cursor/caret (|)[/BOLD]"
I need to control the cursor position in a textbox to do this, does anyone know how to place the cursor in the textbox at a particular position
The functionality I am looking for... Excel provides data entry help based on previous entries i.e. if in a previous cell in a column I entered "Jim Bob" then the next cell I type a "J" Excel provides help by showing "Jim Bob" in a way that allows me to pick it or keep typing. This is the kind of functionality I am trying to get using JS.
In the code below I create an array of previous entries by the user over the last 45 days this all comes from a DB but that's not important here. When the user enters a key in the textbox I can pop the text box with a matching value from the array, only up to the chars entered.
The Problem or Question: Is there a way to place the curser back into the last position and highlight the remaining part of the match from the array?
This is really hard to explain but if you ever used Excel you may have an idea of what I am trying to do. Code:
I'm trying to create a function sort of like the ctrl+f function in IE, where you click 'next' and certain words on the page are highlighted (by selecting them with the cursor). This is all well and good for inputs and textareas, however for text in simple text nodes... Code: <span class=highlight> bob </span> I can't get this to work - as 'createTextRange()' isn't a valid operation on text nodes. Is this something you can do in JS (specifically IE)? Alternatively, is it possible to 'focus' on a text node, causing the scrollbar to move so the user can see it on the page (and I'd highlight it with CSS, to replicate the same effect)?
Is there a way to read a position of the cursor in the textarea window form? In the place showed by the cursor there should be placed any text or html tags? (when clicking on a button). I know that it's possible to write in addition to the content of the window but can you put anything to the middle of the text?
while (re.test(str)) str = str.replace(re, '$1.$2$3')
str += (arr.length 1) ? (',' + arr[1]) : ''
elm.value = str } </snip>
It works as I expected, except that after the function finished its execution the cursor moves to the end of the textfield. So if I want to insert two or more characters, the rest of it goes to the end of textfield.
How I determine the position of the cursor in the textfield before executing the regex?
I'm using contentEditable divs. I want to have a button a person can press, a modal window appears, some text from the modal window is selected, then it is to be inserted into the contentEditable div in the location the cursor was at before pressing the button. So how can I save that spot so I can insert there?
I am currently working on a small script that allows people to insert BB-codes to edit their text. They are able to click a button (for example underline) and then the bb-code will appear at the end of the textfield-value.How can i retrieve the current position of the cursor within the textarea and then parse the bb-code within?
how can i fix this to work correctly in ie7 (and preferably ie6)this is what's supposed to happen: in a text field, as a uk postcode is typed in, once the user has typed in enough to know where the space in the postcode should be it's being placed in there for them automatically.
Here is the code contained within the form: Code: <tr><td><span class="item_title"Logo Sticker</span> (min. order 100) <img src="images/0_pic.gif" border="0" onclick="MM_openBrWindow('images/orderform/ogo_sticker.gif','','scrollbars=yes,resizable=yes,width=400,height=550')" /> </td> <td width="178">$4.00<br />per 100</td> <td ><select name="Logo_Decals_MEMB_A0_006" id="cpa_logo_stickers" onchange="Calc(this.form);"> <option value="0"> </option> <option value="100">100</option> ..... I know that this is not the proper code, it is copied from another form that uses a different Javascript. What code would I need to insert to make it work here?
I have a sample of working code that is used for an item which costs $1.00 and has no drop down selector: Code: <tr> <td><span class="item_title-blue">Envelope - Individual</span> <img src="images/0_pic.gif" alt="Click to See Picture of Item" border="0" onclick="MM_openBrWindow('images/orderform/env.jpg','','scrollbars=yes,resizable=yes,width=408,height=547')" /></td> <td align="center" valign="middle">$1.00 </td> <td align="center" ><p> <input name="Envelope" type="text" id="FormsEditField224" onchange="KW_calcForm('Envelope Total',100,2,'#Envelope','*','1')" value="" size="4" maxlength="4" /> <label><div align="left"> </label></td><td align="center"><p> <input id="FormsEditField225" type="text" name="Envelope Total" value="" size="9" maxlength="10" onfocus="this.blur()"/> </p></td></tr><tr>
The above code does run correctly, I just need it to be for a 4.00 per 100 drop down list as demonstrated before.
In IE it is a simple matter of: range.text += text; but I am having great difficulty figuring it out for FF.I have looked online for hours but the only solutions that I can find are to do with inserting text into textareas which supply you with nice 'selectionStart', 'selectionEnd' properties. Using a textarea would be useless for my purposes and a div element does not have such properties. An implementation in this case I am thinking would rely solely on the range object for the necesary selection / cursor position information, but I cannot figure out how to do this using the FF/W3C Range object.What I'm basically doing is trying to enable the user to paste unformatted (plain) text into a contenteditable zone for a WYSIWYG editor. I have got it working in IE, but FF is a whole other kettle of fish for this particular issue.