Добавить форму
Здравствуйте товарищи!
Вот этот код:
<a href="javascript:kide.insertSmile(' A70 ')">
<img src="/components/com_kide/templates/default/images/iconos/A70.gif" alt="A70"></a>
вставляет смайлик вот сюда: <textarea maxlength="3000" class="KIDE_dc_admin" id="KIDE_txt" placeholder="Сюда песать текст!" cols="50" rows="4" name="txt" onkeypress="return kide.pressedEnter(event, false)" onkeydown="kide.check_shift(event, false, false)" onkeyup="kide.check_shift(event, true, false)" style="font-size: 16px;"></textarea> очень бы хотелось, что бы вставлял сюда: <textarea class="KIDE_dc_admin" onkeyup="kide.check_shift(event, true, true)" onkeydown="kide.check_shift(event, false, true)" id="privados_txt" cols="28" rows="3" name="privados_txt" onkeypress="return kide.pressedEnter(event, true)"></textarea> когда оно в фокусе. Если все правильно понял, вот скрипт который за это отвечает:
insertSmile: function (text) {
let textarea = document.forms.kideForm.txt;
textarea.value += " " + text;
textarea.focus({});
},
filter_smilies: function (s) {
s = " " + s + " ";
for (let i = 0; i < this.smilies.length; i++) {
s = s.replace(
" " + this.smilies[i][0],
'<img alt="' +
this.smilies[i][0] +
'" title="' +
this.smilies[i][0] +
'" src="' +
this.smilies[i][1] +
'" class="KIDE_icono" />'
);
s = s.replace(
" " + this.smilies[i][0].toLowerCase(),
'<img alt="' +
this.smilies[i][0] +
'" title="' +
this.smilies[i][0] +
'" src="' +
this.smilies[i][1] +
'" class=KIDE_icono" />'
);
}
Попробовал добавить функцию:
insertSmile: function (text) {
let textarea = document.forms.kideForm.txt;
textarea.value += " " + text;
textarea.focus({});
},
insertSmile: function (textp) {
let textarea_privados = document.forms.kideForm.privados_txt;
textarea_privados.value += " " + textp;
textarea_privados.focus({});
},
filter_smilies: function (s) {
s = " " + s + " ";
for (let i = 0; i < this.smilies.length; i++) {
s = s.replace(
" " + this.smilies[i][0],
'<img alt="' +
this.smilies[i][0] +
'" title="' +
this.smilies[i][0] +
'" src="' +
this.smilies[i][1] +
'" class="KIDE_icono" />'
);
s = s.replace(
" " + this.smilies[i][0].toLowerCase(),
'<img alt="' +
this.smilies[i][0] +
'" title="' +
this.smilies[i][0] +
'" src="' +
this.smilies[i][1] +
'" class=KIDE_icono" />'
);
}
Но тогда insertSmile вообще перестает работать. :help: |
Ubivectel,
в оба поля одновременно? |
Нет нет, в то которое в фокусе что бы вставлялся, т.е. где в данный момент курсор
|
Ubivectel,
если одновременно то так
insertSmile: function (text) {
let textarea = document.forms.kideForm.txt;
textarea.value += " " + text;
textarea.focus();
textarea = document.querySelector('[name="privados_txt"]');
textarea.value += " " + text;
textarea.focus();
},
если по разному то надо продублировать и добавить функцию но с другим именем
<a href="javascript:kide.insertSmilePrivados(' A70 ')">
<img src="/components/com_kide/templates/default/images/iconos/A70.gif" alt="A70"></a>
insertSmilePrivados: function (text) {
let textarea = document.querySelector('[name="privados_txt"]');
textarea.value += " " + text;
textarea.focus();
},
|
Функцию добавил, но не понимаю как быть с этим:
<a href="javascript:kide.insertSmilePrivados(' A70 ')">
<img src="/components/com_kide/templates/default/images/iconos/A70.gif" alt="A70"></a>
Смайлики прописаны в HTML вот так:
<a href="javascript:kide.insertSmile(' A01 ')">
<img ititle="A01" src="components/com_kide/templates/default/images/iconos/A01.gif" alt="A01" /></a>
<a href="javascript:kide.insertSmile(' A03 ')">
<img title="A03" src="components/com_kide/templates/default/images/iconos/A03.gif" alt="A03" /></a>
<a href="javascript:kide.insertSmile(' A04 ')">
<img title="A04" src="components/com_kide/templates/default/images/iconos/A04.gif" alt="A04" /></a>
<a href="javascript:kide.insertSmile(' A05 ')">
<img title="A05" src="components/com_kide/templates/default/images/iconos/A05.gif" alt="A05" /></a>
<a href="javascript:kide.insertSmile(' A06 ')">
<img title="A06" src="components/com_kide/templates/default/images/iconos/A06.gif" alt="A06" /></a>
<a href="javascript:kide.insertSmile(' A07 ')">
<img title="A07" src="components/com_kide/templates/default/images/iconos/A07.gif" alt="A07" /></a>
<a href="javascript:kide.insertSmile(' A08 ')">
<img title="A08" src="components/com_kide/templates/default/images/iconos/A08.gif" alt="A08" /></a>
<a href="javascript:kide.insertSmile(' A09 ')">
<img title="A09" src="components/com_kide/templates/default/images/iconos/A09.gif" alt="A09" /></a>
|
Поменял код одного смайла на:
<a href="javascript:kide.insertSmilePrivados(' A01 ')">
<img ititle="A01" src="components/com_kide/templates/default/images/iconos/A01.gif" alt="A01" /></a>
и теперь он вставляется только в "privados_txt" независимо от того какой из textarea в фокусе |
Ubivectel,
выбор по фокусу. попробуй так. всё что выше убрать
insertSmile: function (text) {
let textarea = document.activeElement||document.forms.kideForm.txt;
textarea.value += " " + text;
textarea.focus({});
},
|
Заменил:
insertSmile: function (text) {
let textarea = document.forms.kideForm.txt;
textarea.value += " " + text;
textarea.focus({});
},
insertSmilePrivados: function (text) {
let textarea = document.querySelector('[name="privados_txt"]');
textarea.value += " " + text;
textarea.focus();
},
на:
insertSmile: function (text) {
let textarea = document.activeElement||document.forms.kideForm.txt;
textarea.value += " " + text;
textarea.focus({});
},
Так не срабатывают ни туда ни сюда ( |
Ubivectel,
это куда-то ...
let textareaActive;
document.addEventListener( "mouseup" , function({target}) {
if(target = target.closest("textarea")) textareaActive = target;
});
это сам знаешь куда.
insertSmile: function (text) {
let textarea = textareaActive ||document.forms.kideForm.txt;
textarea.value += " " + text;
textarea.focus({});
},
|
Хм, сейчас клик по смайлику удаляет курсор из полей ...
|
| Часовой пояс GMT +3, время: 01:59. |