Позиция курсора TextArea

Я хотел бы управлять курсором в текстовой области.

Я пытался использовать метод JavaScript, но ничего не работает.

void main()
{
    tchat           my_tchat = null;
    TextAreaElement input;

    input = querySelector('#input');
    input.onKeyPress.listen((key) {
        if (key.keyCode == 13)
        {
            if (my_tchat == null) {
                my_tchat = new tchat('ws://127.0.0.1:4040/ws', input.value);
                input.attributes['placeholder'] = "Put msg here...";
            }
            else
                my_tchat.send(input.value);
            input.value = "";
        }
    });
}

input.setSelectionRange() не работает.


person Druxtan    schedule 01.04.2014    source источник
comment
Ваш код не показывает, как вы пытаетесь его использовать.   -  person Günter Zöchbauer    schedule 02.04.2014


Ответы (1)


Я попробовал это так, и это работает для меня

library x;

import 'dart:html';
import 'dart:async';
import 'dart:math';

void main() {
  var rnd = new Random();
  var my_tchat;
  TextAreaElement input = document.querySelector('#input');

  input.onKeyPress.listen((key) {
    print(key);
  });

  new Timer.periodic(new Duration(seconds: 1), (_) {
    var l = input.value.length;
    if (l > 0) {
      var pos = rnd.nextInt(l);
      input.setSelectionRange(pos, pos);
    }
  });
}
person Günter Zöchbauer    schedule 02.04.2014
comment
Просто для демонстрации установка диапазона выбора каждые 10 секунд при наборе текста. - person Günter Zöchbauer; 02.04.2014
comment
Не работает, курсор стоит на месте. - person Druxtan; 02.04.2014
comment
Я изменил пример в своем ответе. Курсор прыгает каждую секунду. - person Günter Zöchbauer; 02.04.2014
comment
Это не не работает. Я использую это: ‹textarea id=input placeholder=Entrez un псевдо... rows=2 style=resize: vertical; ширина: 80vw;›‹/текстовое поле› - person Druxtan; 02.04.2014
comment
Я обновил свой пример, чтобы распознать нулевую длину текста (у меня было несколько символов в качестве значения в HTML). Я использовал ваш фрагмент HTML, и это сработало. - person Günter Zöchbauer; 02.04.2014
comment
Курсор остается на строке 2. - person Druxtan; 03.04.2014
comment
Какую версию Дарта вы используете? dart --version в командной строке. - person Günter Zöchbauer; 03.04.2014
comment
Версия Dart VM: 1.2.0 (вторник, 25 февраля, 07:31:27 2014 г.) на macos_x64 - person Druxtan; 03.04.2014
comment
Возможно, была ошибка. Я использую 1.3.0-dev.7.10. Вы можете либо загрузить Dart с канала разработчиков, либо подождать несколько дней, чтобы получить версию 1.3. Я ожидаю, что stabel 1.3 будет выпущен очень скоро (хотя и не уверен). - person Günter Zöchbauer; 03.04.2014