Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.10.2018, 09:49
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Ввод текста в определенное место input
Добрый день. Есть input, текст в который вводится из события click:
<input id="keyboard-input" type="text">
<button type="button" class="key-button-new">1</button>
<button type="button" class="key-button-new">2</button>
<button type="button" class="key-button-new">3</button>
<script>
$('.key-button-new').click(function(){
        var key = $(this).html();
        $("#keyboard-input").focus().val(function(i, val) {
            return val + key;
        });
});
</script>


Подскажите пожалуйста как вводить в input туда, куда ткнули мышкой?
Например ввели слово, а там ошибка, ткнули в место ошибки и исправили с события click.
Ответить с цитированием
  #2 (permalink)  
Старый 01.10.2018, 10:36
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Местоположение курсора нашел, а вот как заставить его туда писать, не знаю:
$('.key-button-new').click(function(){
        var key = $(this).html();
        $("#keyboard-input").focus().val(function(i, val) {
            var cursor = val.slice(0, this.selectionStart).length;//место курсора в input 
            console.log(cursor);
            return val + key;
        });
});
Ответить с цитированием
  #3 (permalink)  
Старый 01.10.2018, 10:53
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от Artur_Hopf
как вводить в input туда, куда ткнули мышкой?
Инпут сам по себе так и работает.
<input id="keyboard-input" type="text">

Сообщение от Artur_Hopf
Например ввели слово, а там ошибка, ткнули в место ошибки и исправили с события click.
Кто знает про ошибку? Скрипт или человек? Скрипт может заменить неправильное слово целиком.
Человек может исправить - смотри выше.

Непонятна проблема.
И скрипт в пост 1 непонятный - что он делает и зачем?

Последний раз редактировалось Dilettante_Pro, 01.10.2018 в 11:01.
Ответить с цитированием
  #4 (permalink)  
Старый 01.10.2018, 11:00
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Dilettante_Pro,
Я о том чтобы вводит с кнопки тыкая мышкой, допустим нет клавиатуры. А ошибка это человек, написал случайной прэвед, надо исправить э, ткнул мышкой туда, 2 символ и исправил. Так вот как отследить и исправить, я пока дошел до этого, но не работает:
$('.key-button-new').click(function(){
        var key = $(this).html();
        $("#keyboard-input").focus().val(function(i, val) {
            var cursor = val.slice(0, this.selectionStart).length;
            console.log(cursor);
            return val.splice(cursor, 0, key);
            //return val + key;
        });
    });
Ответить с цитированием
  #5 (permalink)  
Старый 01.10.2018, 11:08
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Вот как это сейчас работает:
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<input id="keyboard-input" type="text">
<button type="button" class="key-button-new" >1</button>
<button type="button" class="key-button-new" >2</button>
<button type="button" class="key-button-new" >3</button>
<button type="button" class="key-button-new" >4</button>
<button type="button" class="key-button-new" >5</button>
<button type="button" class="key-button-new" >6</button>
<button type="button" class="key-button-new" >7</button>
<button type="button" class="key-button-new" >del</button>
<br>
<div>Положение текста я отследил, а как вставить не знаю:<div id="text"></div></div>
<script>
$('.key-button-new').click(function(){
        var key = $(this).html();
        $("#keyboard-input").focus().val(function(i, val) {
            var cursor = val.slice(0, this.selectionStart).length;
            $("#text").html(cursor);
            if(key == 'del'){
                return val.substr(0, val.length - 1);
            }else{
                   return val + key;
            };
        });
    });
</script>

То есть если я тыкну мышкой в центр текста, а потом нажму на кнопки, новый текст вставится в конец введенного текста.

Как сделать так чтобы текст вводился там где курсор, с кнопок (button)?

Последний раз редактировалось Artur_Hopf, 01.10.2018 в 11:13.
Ответить с цитированием
  #6 (permalink)  
Старый 01.10.2018, 11:21
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Вставить можно так
<input id="keyboard-input" type="text">
<button type="button" class="key-button-new">1</button>
<button type="button" class="key-button-new">2</button>
<button type="button" class="key-button-new">3</button>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$('.key-button-new').click(function(){
        var key = $(this).html();
        $("#keyboard-input").focus().val(function(i, val) {
            
            var begin = val.slice(0, this.selectionStart);

            var end = val.slice( this.selectionStart, val.length );
console.log(begin + " " + end);
            return begin + key + end;
        });
});
</script>
Ответить с цитированием
  #7 (permalink)  
Старый 01.10.2018, 11:24
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Dilettante_Pro,
Спасибо большое, а чтоб курсор потом там же остался?
Ответить с цитированием
  #8 (permalink)  
Старый 01.10.2018, 11:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Вставка символа в место отмеченное курсором
Artur_Hopf,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
$('.key-button-new').click(function(){
    var key = this.innerHTML;
    var target = document.querySelector("#keyboard-input"),
    text = target.value,
    caretPos = target.selectionStart,
    caretPosEnd = target.selectionEnd;
    target.value = text.substr(0, caretPos) + key + text.substr(caretPosEnd);
    caretPos += key.length;
    target.focus();
    target.setSelectionRange(caretPos, caretPos)

});
});
  </script>
</head>

<body>
<input id="keyboard-input" type="text">
<button type="button" class="key-button-new">1</button>
<button type="button" class="key-button-new">2</button>
<button type="button" class="key-button-new">3</button>

</body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 01.10.2018, 11:29
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

рони,
Спасибо, буду разбираться как это работает
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как с помощью скрипта высчитать ширину полосы прокрутки? LADYX Элементы интерфейса 35 13.11.2017 12:50
Как запретить ввод текста в input snizhok Элементы интерфейса 41 07.11.2016 13:11
Ввод числа в input ограничения или показ текста о большой цифре Vlad123456 Общие вопросы Javascript 12 28.04.2014 13:34
Установка каретки в определенное место input Upcoming Events/DOM/Window 2 16.02.2014 12:48
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27