- Автор темы
- #1
Использую Для просмотра ссылки Войди или Зарегистрируйся для загрузки файлов, для каждого файла генерируется свою ключ, который обрабатывается потом через тег (пример ).
Если загрузить один файл и нажать на кнопку add все хорошо, в форму добавляется тег, но вот если загрузить еще файлов то кнопка add будет вставлять форму не одну пару тега, а столько сколько файлов загрузили, где коварная ошибка может быть которая дублирует теги?
insertAtCaret function
Если загрузить один файл и нажать на кнопку add все хорошо, в форму добавляется тег, но вот если загрузить еще файлов то кнопка add будет вставлять форму не одну пару тега, а столько сколько файлов загрузили, где коварная ошибка может быть которая дублирует теги?
Код:
$('#InputImage').fileupload({
url: '',
type: 'POST',
dataType: 'json',
autoUpload: true,
loadImageFileTypes: '/^image\/(jpg|jpeg|png)$/',
done: function(e, data) {
if(data.result.status) {
$('#post-uploads').append('<button class="btn btn-success btn-add-attach pull-right" data-attach="'+data.result.attach+'">Add</button>');
$('.btn-add-attach').click(function(){
var attach = $(this).data('attach');
$('#editor').insertAtCaret('[attach]'+attach+'[/attach]');
});
}
}
});
insertAtCaret function
Код:
$.fn.insertAtCaret = function(myValue) {
return this.each(function() {
var me = this;
if (document.selection) { // IE
me.focus();
sel = document.selection.createRange();
sel.text = myValue;
me.focus();
} else if (me.selectionStart || me.selectionStart == '0') { // Real browsers
var startPos = me.selectionStart, endPos = me.selectionEnd, scrollTop = me.scrollTop;
me.value = me.value.substring(0, startPos) + myValue + me.value.substring(endPos, me.value.length);
me.focus();
me.selectionStart = startPos + myValue.length;
me.selectionEnd = startPos + myValue.length;
me.scrollTop = scrollTop;
} else {
me.value += myValue;
me.focus();
}
});
};