2014-10-07 2 views
1

Моей функции использует две переменные, которые я определяю в моем вводе-тегеиспользуя переменную для определения элементов

function insert(aTag, eTag) { 
var input = document.forms['form'].elements['textarea']; 
input.focus(); 
... 
} 

...

<input type="button" name="bold" value="bold" onClick="insert('<b>', '</b>')"> 

Функция поместит Atag и Etag вокруг выбранное частей в текстовом поле. Поскольку я хочу использовать эту функцию в других текстовых областях в том же виде, я попытался использовать в этой переменной другую переменную. Это, к сожалению, не работает.

Я пробовал много вариантов. Понятие о как здесь:

function insert(aTag, eTag, selectInput) { 
var input = document.forms['form'].elements[selectInput]; 

...

<input type="button" name="bold" value="bold" onClick="insert('<b>', '</b>', 'thistextarea')"> 
+1

Смешивание html и js - это плохая практика. Попробуйте использовать прослушиватели событий javascript, например document.querySelector ('input [name = "bold"]'). AddEventListener ('click', function() {...}, false); – iovis

+0

Непонятно, что вы пытаетесь сделать. Вы не показываете, для чего используются те слова 'b', и я не уверен, что вы подразумеваете под« выбранными тегами в текстовом поле ». Текстовая область содержит текст, а не HTML. Возможно, вы имеете в виду, что ваши текстовые поля содержат непроверенный HTML, я не уверен. – Utkanos

ответ

0

В обработчике OnClick, this относится к объекту, который был щелкнули. Таким образом, вы можете просто сделать:

<input type="button" name="bold" value="bold" onClick="insert('<b>', '</b>', this)"> 

функция получит объект без повторного выбора из любого места:

function insert(aTag, eTag, input) { 
    input.focus(); 
    ... 
} 

Side Примечание: ненавязчивые обработчики событий предпочтительнее инлайн.