Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/48: Рейтинг темы: голосов - 48, средняя оценка - 5.00
25 / 25 / 6
Регистрация: 04.07.2013
Сообщений: 260

Вставить в textarea текст, после нажатия кнопки

22.10.2013, 05:24. Показов 9355. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, мир! Помогите упростить/усовершенствовать скрипт. Данный скрипт работает следующим образом:

Вставляет в конец стоки то что в нем находится (обычный текст), после нажатия на кнопку. Для каждой кнопки, нужно создавать новую функцию, и каждый раз в нее класть, то что нужно вывести. Как на примере ниже:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function d1d() {
    var langg;
    var nc; 
 
    langg=document.getElementById('put'); 
    nc=langg.selectionStart; 
    langg.value=langg.value.substr(0,nc)+'_текст_который_нужно_вставить_'+ 'hth' +langg.value.substr(nc);
}
 
function d2d() {
    var langg;
    var nc; 
 
    langg=document.getElementById('put'); 
    nc=langg.selectionStart; 
    langg.value=langg.value.substr(0,nc)+'_другой_текст_который_нужно_вставить_'+ 'hth' +langg.value.substr(nc);
}
HTML5
1
2
<input type="button" value="Кнопка 1" onClick="d1d()">
<input type="button" value="Кнопка 1" onClick="d2d()">
**************************************** *******

Прошу помощи у знатоков js, что нужно сделать, чтоб функция была одной, но значения разные? То есть, к примеру:

JavaScript
1
2
3
4
5
function d1d() {
// здесь указать:
// для id="alfa1" - выводить "_текст_"
// для id="alfa2" - выводить "_другой_текст_"
}
HTML5
1
2
<input type="button" value="Кнопка 1" onClick="d1d()" id="alfa1">
<input type="button" value="Кнопка 1" onClick="d1d()" id="alfa2">
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.10.2013, 05:24
Ответы с готовыми решениями:

Изменить текст кнопки после нажатия
Есть кнопка char Name=&quot;Pause&quot;; HWND btnPause = CreateWindow(&quot;button&quot;, Name, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, ...

Возвращать текст после нажатия кнопки
Всем привет, делаю функцию авторизацию через VK, пользователь вводит логин и пароль, и если его запрашивает вести код от двойной...

Как изменить текст после нажатия кнопки
$(document).on(&quot;click&quot;, &quot;#toggle-chat&quot;, function() { if($('#chat-main').is(':visible')) { ...

10
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,529
22.10.2013, 07:45
В функции создать массив с данными и передавать в функцию нужный индекс. В этом случае ид не нужны.
Писать события в html это плохая идея, html это html, а JS это JS.
1
 Аватар для LaPyX
40 / 40 / 6
Регистрация: 17.04.2013
Сообщений: 196
22.10.2013, 07:58
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function d1d() {
if(id = 'alfa1'){
  text = '_текст_'
} else {
  text = '_другой_текст_'
}
 
var langg;
    var nc; 
 
    langg=document.getElementById('put'); 
    nc=langg.selectionStart; 
    langg.value=langg.value.substr(0,nc)+text+ 'hth' +langg.value.substr(nc)
 
}
1
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
22.10.2013, 08:30
<input type="button" value="Кнопка 1" onClick="d1d (1)" id="alfa1">
<input type="button" value="Кнопка 1" onClick="d1d (0)" id="alfa2">

--------------

function d1d (x) {
var txt = x ? '_текст_который_нужно_вставить_' : '_другой_текст_который_нужно_вставить_';
...
langg.value=langg.value.substr(0,nc) + txt + 'hth' +langg.value.substr(nc);
...
1
25 / 25 / 6
Регистрация: 04.07.2013
Сообщений: 260
22.10.2013, 20:14  [ТС]
LaPyX, kalabuni, не работает(

Добавлено через 10 минут
Вместо:
Цитата Сообщение от LaPyX Посмотреть сообщение
JavaScript
1
} else {
сделал так:

JavaScript
1
} else if(id = 'alfa2') {
Чтоб сработала наверняка .. но и это не помогло. В итоге получилось вот так:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
function d1d() {
    if(id = 'alfa1') {
        text = '_текст_'
    } else if(id = 'alfa2') {
        text = '_другой_текст_'
    }
                         
    var langg;
    langg=document.getElementById('put'); 
    nc=langg.selectionStart; 
    langg.value=langg.value.substr(0,nc)+text+ ' ' +langg.value.substr(nc)
}
Но вот этот вариант вставляет то что в if-е. Будто он не видит тот ид. Что не так?

Добавлено через 4 минуты
Цитата Сообщение от kalabuni Посмотреть сообщение
function d1d (x) {
var txt = x ? '_текст_который_нужно_вставить_' : '_другой_текст_который_нужно_вставить_';
...
langg.value=langg.value.substr(0,nc) + txt + 'hth' +langg.value.substr(nc);
...
Можете написать весь скрипт? В яваскрипте я плохо разбираюсь.

Добавлено через 32 минуты
Вот что получилось:

JavaScript
1
2
3
4
5
6
7
8
9
function d1d(x) {
    var txt = x ? '_текст_' : '_другой_текст_';
    var nc;
    var langg;
                        
    langg=document.getElementById('put'); 
    nc=langg.selectionStart; 
    langg.value=langg.value.substr(0,nc) + txt + langg.value.substr(nc);
}
Текст вставляется в начало поля. Как сделать так, чтоб вставлялось в конец строки.

----

И как сделать чтоб вставлялось не 2 варианта, а три, четыре, пять, десять? Здесь вставляется 2 варианта:
JavaScript
1
var txt = x ? '_текст_' : '_другой_текст_';
А если сделать так, то ничего не выводится:
JavaScript
1
var txt = x ? '_текст_' : '_другой_текст_' : '_третий_текст_';
HTML5
1
2
3
<input type="button" value="Кнопка 1" onClick="d1d(0)" id="alfa1">
<input type="button" value="Кнопка 2" onClick="d1d(1)" id="alfa2">
<input type="button" value="Кнопка 1" onClick="d1d(2)" id="alfa1">
Добавлено через 1 минуту
И когда нажимаю на кнопку:
HTML5
1
<input type="button" value="Кнопка 1" onClick="d1d(0)" id="alfa1">
То выводится:
'_другой_текст_', а не '_текст_'

Почему так происходит?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
22.10.2013, 20:28
HTML5
1
2
<input type="button" value="Кнопка 1" onClick="d1d (1)">
<input type="button" value="Кнопка 1" onClick="d1d (0)">
JavaScript
1
2
3
4
5
6
7
function d1d (x)
{
var txt = x ? '_текст_который_нужно_вставить_' : '_другой_текст_который_нужно_вставить_';
var langg = document.getElementById ('put'); 
var nc = langg.selectionStart; 
langg.value = langg.value.substr (0, nc) + txt + 'hth' + langg.value.substr (nc);
}
JavaScript
1
2
3
4
5
if (x == 0) var txt = 'текст0';
if (x == 1) var txt = 'текст1';
if (x == 2) var txt = 'текст2';
...
if (x == 123) var txt = 'текст123';
1
25 / 25 / 6
Регистрация: 04.07.2013
Сообщений: 260
22.10.2013, 20:48  [ТС]
kalabuni, Спасибо, работает замечательно! При нажатии на кнопку, он вставляется в начало текстового поля. А как вставлять текст в конец строки?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
22.10.2013, 21:14
JavaScript
1
langg.value += txt;
1
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,529
22.10.2013, 21:48
kalabuni, круто, вместо одного массива пачка проверок и в каждой объявляется одна и та же переменная.
Неожиданное решение.
JavaScript
1
2
3
4
5
6
7
8
9
10
function dld(n){
var m;
m[0]="text0";
m[1]="text1";
m[2]="text2";
m[3]="text3";
 
m[???]="text???";
 
 };
HTML5
1
2
3
4
5
<input type="button" value="Кнопка 0" onClick="d1d (0)">
<input type="button" value="Кнопка 1" onClick="d1d (1)">
<input type="button" value="Кнопка 2" onClick="d1d (2)">
 
<input type="button" value="Кнопка ???" onClick="d1d (???)">
1
25 / 25 / 6
Регистрация: 04.07.2013
Сообщений: 260
22.10.2013, 23:11  [ТС]
kalabuni, Здорово работает! Спасибо!

Добавлено через 52 минуты
Цитата Сообщение от newJS Посмотреть сообщение
вместо одного массива пачка проверок и в каждой объявляется одна и та же переменная.
Неожиданное решение.
Мне именно, это и нужно было.
0
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,529
23.10.2013, 07:35
Цитата Сообщение от Gauga Посмотреть сообщение
Мне именно, это и нужно было.
Пока это "нужно" по этой причине
Цитата Сообщение от Gauga Посмотреть сообщение
В яваскрипте я плохо разбираюсь.
придет опыт, придет понимание.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.10.2013, 07:35
Помогаю со студенческими работами здесь

Как сделать так, чтобы текст из Edit после нажатия кнопки попадал в RichEdit?
Привет ребята! Подскажите, как сделать так, чтобы текст из Edit после нажатия кнопки попадал в RichEdit, но в заданное место (например...

Как мне сделать так , чтобы после нажатия кнопки появлялся текст ( каждый раз новый )
Помогите мне с одним вопросом. Как мне сделать так , чтобы после нажатия кнопки появлялся текст ( каждый раз новый ) !!! Заранее спасибо!

Как, при нажатии кнопки, загрузить нужный текст из БД текст в textarea
Есть динамически создаваемый список из БД (он двухуровневый), например: &lt;ul&gt; &lt;li&gt;item 1 &lt;button...

Хочу чтобы после занесения в TextBox любого слова и нажатия кнопки ОК текст который я набрал в TextBoxЕ разносился по Лист3, Лист4.
TextBox Хочу чтобы после занесения в TextBox любого слова и нажатия кнопки ОК текст который я набрал в TextBoxЕ разносился по Лист3, ...

При заполнении формы после нажатия кнопки "отправить" текст выводится не полностью
Помогите разобраться почему при заполнении формы после нажатия кнопки отправить выдает страницу с текстом: Результат анкетирования: ,а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru