Just wanted to share a helpful method that will insert text into a textArea where the cursor is in the field or it will replace the highlighted text with the text provided. Simply add the extension method into any global module. I’m currently using this to allow the user to insert “{{tokens}}” into a WebTextArea from dropdown list of tokens:
Public Sub InsertTextAtCursorSelection(extends c as WebTextArea, value as string)
dim s as string = "var v = jQuery('#"+c.ControlID+"_field').val();"+EndOfLine+_
"var cursorPos = jQuery('#"+c.ControlID+"_field').prop('selectionStart');"+EndOfLine+_
"var cursorEndPos = jQuery('#"+c.ControlID+"_field').prop('selectionEnd');"+EndOfLine+_
"var textBefore = v.substring(0, cursorPos);"+EndOfLine+_
"var textAfter = v.substring(cursorEndPos, v.length);"+EndOfLine+_
"jQuery('#"+c.ControlID+"_field').val(textBefore + '"+value.ReplaceAll("'","/'")+"' + textAfter);"
c.ExecuteJavaScript(s)
End Sub
FeatureRequest to be made native:
<https://xojo.com/issue/63064>