У меня есть javascript, который будет использоваться для тега текста в текстовом поле, когда пользователь нажимает кнопку. Прямо сейчас я только заработал на одну кнопку. Есть 8 кнопок, которые должны иметь возможность отмечать в целом, но я не хочу повторять один и тот же код снова и снова для каждого идентификатора кнопки, поэтому я попробовал цикл for, но это не сработало. Я не совсем уверен, почему.javascript with for loop для пометки текста в форме textarea
Эти кнопки идентификаторами: редактировать-button0, редактировать-Button1, редактировать-Button2, ..., редактировать-Button8
Я добавил предупреждение в цикл, чтобы проверить идентификатор кнопки.
Независимо от того, какую кнопку я нажимаю позже, он говорит, что кнопка id является кнопкой edit8, и она добавляет тег, связанный с этой кнопкой.
Любые идеи, почему это не работает или как я должен это делать.
/*globals document*/
(function ($) {
"use strict";
$(document).ready(function() {
for (i=0;i<8;i++) {
$("#edit-button"+i).click(function() {
alert("#edit-button"+i);
var tag = $("#edit-button"+i).attr("value");
var id = "protocol"; /* id of textarea */
var element = document.getElementById(id); /* HTML element object */
var start = element.selectionStart; /* start pos of selection */
var end = element.selectionEnd; /* end pos of selection */
var text = element.value; /* whole text */
var prefix = text.substring(0, start); /* part before selection */
var selected = text.substring(start, end); /* selected text */
var suffix = text.substring(end); /* part after selection */
/* insert tags in selection */
selected = "["+tag+"]" + selected + "[/"+tag+"]";
/* update HTML object */
element.value = prefix + selected + suffix; /* selected text */
element.selectionStart = start; /* new start pos */
element.selectionEnd = start + selected.length; /* new end pos */
return false;
});
}
});
})(jQuery);
Я не уверен, что могу добавить класс для кнопок. Javascript является частью модуля drupal, а форма api в drupal немного негибкая. – numfar
@ user1361931 Я вижу, что вы сделали не так, просто придумал решение –
Мне удалось добавить некоторые имена классов в кнопки. Вышеупомянутое решение с функцией each(), похоже, работает хорошо. :) – numfar