powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / jquery. Проверка вставки текста из буфера на перенос строк.
25 сообщений из 30, страница 1 из 2
jquery. Проверка вставки текста из буфера на перенос строк.
    #37923449
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем. У меня в буфере обмена есть 2 строки:

abc
def

Необходимо, чтобы при вставке из буфера (и только из буфера!) в текстбокс была проверка - если есть переос строк, то заменяем перенос на ";". Т.е. будет текстбокс выглядеть так:

abc;def

У меня тут есть некоторые мысли:
1)метод change для текстбокса использовать нельзя, т.к. он срабатывает, когда курсор уберу, а нужно чтобы сразу вставлялось с ";"
2)метод keypress использовть тоже нельзя, т.к. не факт, что человек будет использовать CTRL+V (он может переопределить или вставить мышкой).

Есть какие идеи - какие свойства лучше использовать?
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37923493
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у кого-нибудь есть идеи?
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37923504
zolitude
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Students,

делать textarea и парсить при сохранении.
пользователь такие понты (при ctrl+v) едва оценит.
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37923508
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, не подходит.

Тут всё так:
Менеджер через эксель добавляет артикулы продуктов.
Он должен видеть, как скопирует из буфера, какие продукты он добавил через ";".

Так вообще можно сделать или нет?
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924021
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неужели никто не знает каким образом такую хитрую операцию провернуть?
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924043
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
$('input').bind('input propertychange', function() {
    // тут Ваш код
});​
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924053
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
$('input').bind('input propertychange', function() {
    alert('*');
});



Такой вариант не работает -даже звездочку не показывает
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924056
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В каком браузере не работает?
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924065
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, работает. Забыл, что вместо $ я использую jq.

Код: javascript
1.
2.
3.
jq('#txtSKU').bind('input propertychange', function () {
        alert("*");
    });
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924091
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В каком браузере не работает?
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924102
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
jq('#txtSKU').bind('input propertychange', function (){...});


Работает во всех браузерах.

Сейчас думаю - как проверить внутри этого метода - вставлена ли строка из буфера обмена (метод clipboardData) и есть ли переосы строк. Это самое сложное. Непонятно, как определить, т.к. перенос строки браузер понимает как пробел и вставляет с пробелом.
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924141
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут есть небольшая проблемка:
в буфере строка:

abc
def

вставляю в input:


1)IE
abc
window.clipboardData.getData('Text') работает

2)Opera
abc def (3 пробела)
window.clipboardData.getData('Text') не работает

3)Firefox, Chrome
abc def (1 пробел)
window.clipboardData.getData('Text') не работает


Если я буду сравнивать вствленную строку с данными из буфера, то будет неверно, может есть другие варианты?
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924160
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может невозможно узнать - вставлен ли текст из буфера или нет?
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924219
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут кто-нибудь есть?
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924317
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё раз вопрос заново.

У меня в буфере обмена хранится:

abc
def


Например, в IE вставляется:
abc


Необходимо вставить
abc;def

Поэтому необходимо заменить стандартную вставку на свою:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    var paste = false;
    var text3 = "";
    jq('#txtSKU').bind('paste', function () {
        paste = true;
        var text1 = jq('#txtSKU').attr("value");
        var text2 = window.clipboardData.getData('Text');
        text3 = text1 + text2;
    });

    jq('#txtSKU').bind('input propertychange', function () {
        if (paste) {
            jq('#txtSKU').attr("value", text3);
            paste = false;
        }
    });



Прописал этот код, он работает в IE.


1)Несовсем понятно как в text2 разные строки переписать в одну и разделить их ";".
2)Несовсем понятно как отключать защиту в дугих браузерах (почитал разыне форумы, вроде это невозможно через код сделать), т.к. window.clipboardData.getData('Text') работает только в IE
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924365
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924548
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA http://jsfiddle.net/a3GUL/

да не могу я использовать textarea вместо input. Если вместо

<textarea id="input" row="1"></textarea>

будет
<input id="input" row="1">

то ничего работать не будет
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924551
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Studentsда не могу я использовать textarea вместо input.почему?
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924608
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне задание дали, я не могу менять сайт, могу только скрипт дописать.
Попробуйте сами, пусть и с textarea, вставить из буфера в IE9.

Вставляется только abc.

\n def обрезается и не вставляется.

Так что $(this).val($(this).val().replace('\n', ';')); не подходит
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924638
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получается, что нужно всё равно брать из буфера (для IE):

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
jq('#txtSKU').bind('paste', function () {
        paste = true;
        var text1 = jq('#txtSKU').attr("value");
        var text2 = window.clipboardData.getData('Text');        
        text2 = text2.replace('\n', ';');        
        text3 = text1 + text2;
    });

    jq('#txtSKU').bind('input propertychange', function () {
        if (paste) {            
            jq('#txtSKU').attr("value", text3);
            paste = false;
        }
    });



вот такой код работает в IE, но из-за строчки
window.clipboardData.getData('Text');

скрипт перестаёт работать в Opera, Chrome и FireFox.
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924647
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Studentsскрипт перестаёт работать в Opera, Chrome и FireFox.в оных нет window.clipboardData.

а Опера вообще не отлавливает "paste".

В Хроме проблема легко решаема, там clipboardData есть в составе объекта-события, пример 12079052 , но там событие надо навешивать напрямую, а не через jQuery.

Как быть с ФФ и Оперой - непонятно.
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924660
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"paste" не улавливает только опера.

Может вместе с paste можно параметр передать? это и будет текст нашего буфера?
jq('#txtSKU').bind('paste', function (e) {

});

Только не совсем понятно как его оттуда доставать. alert(e) пишет [object object]
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924701
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Studentsмне задание дали, я не могу менять сайт, могу только скрипт дописать.
Попробуйте сами, пусть и с textarea, вставить из буфера в IE9.

Вставляется только abc.

\n def обрезается и не вставляется.

Так что $(this).val($(this).val().replace('\n', ';')); не подходитПопробовал, причём во всех вариантах Browser Mode. Нормально работает.
А дописать скрипт так, чтобы он input на textarea заменил Вам тоже запрещено? :)
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924719
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, не запрещено, это просто.

Но во всех браузерах input выглядит одинаково (см. картинку).
Что будет, если я его заменю на textarea? Во всех браузерах они выглядят по разному, или их как-то можно под input стилизовать?
...
Рейтинг: 0 / 0
jquery. Проверка вставки текста из буфера на перенос строк.
    #37924806
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч, а каким именно образом нужно в chrome использовать .clipboardData? только через передаваемый параметр е?


jq('#txtSKU').bind('paste', function (e) {
e.clipboardData.getData('Text') - не будет работать в Chrome
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / jquery. Проверка вставки текста из буфера на перенос строк.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]