|
01.02.2014, 22:54
|
Интересующийся
|
|
Регистрация: 17.10.2013
Сообщений: 17
|
|
Вставка в разные textarea
Всем доброго времени суток
Вот не как не могу сообразить, есть textearea, есть функция вставки bb кода в текстовое поле все работает все нормально )
А если например работать с двумя textarea то как узнать какую из них юзает пользователь чтобы именно в нее вставлять bb код?
Мне бы просто понять саму суть "логику" работы
|
|
01.02.2014, 23:22
|
|
Профессор
|
|
Регистрация: 23.06.2011
Сообщений: 1,165
|
|
Gertasreg,
понять бы Вашу логику
Вы ходите сделать одну панель кнопок bb-кодов для двух текстарей? Не стоит. Сделайте для каждой свою, чтоб не запутывать пользователя.
|
|
01.02.2014, 23:36
|
Интересующийся
|
|
Регистрация: 17.10.2013
Сообщений: 17
|
|
Ах точно я не совсем уточнил )
для каждой textarea свой блок ббкодов, вставляю после js
if ($(".textarea").length) {
$(".textarea").before(
'<ul class="redactor_toolbar">' +
'<li><a href="javascript:;" data-id="b" class="redactor_bold"></a></li>' +
'<li><a href="javascript:;" class="redactor_underlined"></a></li>' +
'<li><a href="javascript:;" class="redactor_italic"></a></li>' +
'<li><a href="javascript:;" class="redactor_image"></a></li>' +
'<li><a href="javascript:;" class="redactor_link"></a></li>' +
'<li><a href="javascript:;" class="redactor_video"></a></li>' +
'</ul>'
);
}
Проблема в том что я не могу понять в какую textarea вставлят ббкод если их 2 или больше
|
|
02.02.2014, 01:32
|
Интересующийся
|
|
Регистрация: 17.10.2013
Сообщений: 17
|
|
помогите а
|
|
02.02.2014, 02:25
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
<style>
div.testblock {
width:200px;
margin: 10px;
float: left;
}
div.testblock>textarea {
width:200px;
height: 80px;
clear:booth;
}
</style>
<div class="testblock">
<textarea></textarea>
<input type="button" value="Insert text" />
</div>
<div class="testblock">
<textarea></textarea>
<input type="button" value="Insert text" />
</div>
<div class="testblock">
<textarea></textarea>
<input type="button" value="Insert text" />
</div>
<script>
window.onload = function () {
var inps = document.querySelectorAll("div.testblock>input"),
len = inps.length;
for (; inps[--len].setAttribute("onclick", "ins(this)"), len;);
ins = function (el) {
var par = el.parentNode || el.parentElement,
tar = par.children[0];
tar.innerHTML += "Yes ";
}
}
</script>
должно подтолкнуть на нахождение решения
Последний раз редактировалось Vlasenko Fedor, 02.02.2014 в 14:16.
|
|
02.02.2014, 12:05
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Сообщение от Gertasreg
|
Проблема в том что я не могу понять в какую textarea вставлят ббкод если их 2 или больше
|
В активный элемент и вставляйте. Вы догадались дать ему tabindex?
|
|
02.02.2014, 12:07
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Gertasreg,
Отслеживать фокус на поле
<textarea id=1 onfocus="tst(this)"></textarea>
<textarea id=2 onfocus="tst(this)"></textarea>
<script>
function tst(area) {
alert(area.id)
}
</script>
Последний раз редактировалось Deff, 02.02.2014 в 12:12.
|
|
02.02.2014, 13:26
|
Интересующийся
|
|
Регистрация: 17.10.2013
Сообщений: 17
|
|
kostyanet,
Deff,
tabindex я запретил переходы
onfocus, а что если пользователь сразу нажмет на ббкод
|
|
02.02.2014, 14:49
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от Gertasreg
|
что если пользователь сразу нажмет на ббкод
|
Вы же сказали что к каждой форме приписан свой BB-код ?
Отслеживайте клик на обрамлении кнопок соответствуюшей линейке bb-кодов, определяя кликнутый селектор линейки или фокус техтареа - определяете приписку вставок
<script src="http://code.jquery.com/jquery-latest.js"></script>
<span class="wrp-area" style="сursor:pointer;float:left;text-align:center">Кнопки 1<br/><br/><textarea id=1></textarea></span><span class="wrp-area" style="сursor:pointer;float:left;text-align:center">Кнопки 2<br/><br/><textarea id=2></textarea></span>
<script>
$('.wrp-area,.wrp-area textarea').bind('focus click',function () {
var id = $(this).find('textarea')[0].id;
alert(id);
});
</script>
|
|
02.02.2014, 15:07
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
Попытка №2
<style>
div.testblock {
width:200px;
margin: 10px;
float: left;
}
div.testblock>textarea {
width:200px;
height: 80px;
clear:booth;
}
</style>
<div class="testblock">
<textarea></textarea>
<div id="panel">
<input type="button" value="A" />
<input type="button" value="B" />
<input type="button" value="C" />
<input type="button" value="D" />
<input type="button" value="E" />
</div>
</div>
<div class="testblock">
<textarea></textarea>
</div>
<div class="testblock">
<textarea></textarea>
</div>
<script>
window.onload = function () {
var inps = document.querySelectorAll("div.testblock"),
len = inps.length;
for (; inps[--len].setAttribute("onclick", "edit(this)"), len;);
}
edit = function (el) {
el.appendChild(panel);
}
panel.onclick = function (e) {
e = e || window.event;
var el = e.target || e.srcElement;
if (el.tagName != "INPUT") return;
var par = this.parentNode || this.parentElement,
tar = par.children[0];
var myValue = el.value,
myValueLen = myValue.length;
if (document.selection) {
tar.focus();
var sel = document.selection.createRange();
sel.text = myValue;
tar.focus();
} else if (tar.selectionStart || tar.selectionStart == '0') {
var startPos = tar.selectionStart,
endPos = tar.selectionEnd,
scrollTop = tar.scrollTop;
tar.value = tar.value.substring(0, startPos) + myValue + tar.value.substring(endPos, tar.value.length);
tar.focus();
tar.selectionStart = startPos + myValueLen;
tar.selectionEnd = startPos + myValueLen;
tar.scrollTop = scrollTop;
} else {
tar.value += myValue;
tar.focus();
}
}
</script>
Последний раз редактировалось Vlasenko Fedor, 02.02.2014 в 19:22.
|
|
|
|