Как исправить код IntelliJ 2018.1

В настоящее время единственными элементами, которые позволяют безопасно выбирать текст, являются:

, как описано в: whatwg: selectionStart attribute .

Вы можете также прочитайте документацию для интерфейса HTMLInputElement , чтобы более подробно рассмотреть элементы ввода.

Чтобы преодолеть эту «проблему» безопасно, на данный момент лучше всего работать с и примените маску / ограничение, которые принимают только числа. Существует ряд плагинов, которые удовлетворяют требованиям:

Здесь вы можете увидеть живое демо одного из предыдущих плагинов:

Если вы хотите безопасно использовать selectionStart, вы можете проверить те элементы, которые его поддерживают (см. атрибуты типа входа )

Реализация

// Fix: failed to read the 'selectionStart' property from 'HTMLInputElement'
// The @fn parameter provides a callback to execute additional code
var _fixSelection = (function() {
    var _SELECTABLE_TYPES = /text|password|search|tel|url/;
    return function fixSelection (dom, fn) {
        var validType = _SELECTABLE_TYPES.test(dom.type),
            selection = {
                start: validType ? dom.selectionStart : 0,
                end: validType ? dom.selectionEnd : 0
            };
        if (validType && fn instanceof Function) fn(dom);
        return selection;
    };
}());

// Gets the current position of the cursor in the @dom element
function getCaretPosition (dom) {
    var selection, sel;
    if ('selectionStart' in dom) {
        return _fixSelection(dom).start;
    } else { // IE below version 9
        selection = document.selection;
        if (selection) {
            sel = selection.createRange();
            sel.moveStart('character', -dom.value.length);
            return sel.text.length;
        }
    }
    return -1;
}

Использование

// If the DOM element does not support `selectionStart`,
// the returned object sets its properties to -1.
var box = document.getElementById("price"),
    pos = getCaretPosition(box);
console.log("position: ", pos);

Вышеприведенный пример можно найти здесь: jsu.fnGetCaretPosition ()

0
задан LazyOne 13 July 2018 в 07:48
поделиться

1 ответ

Возможно, поле изменилось на значение по умолчанию: вы можете отредактировать правое поле, нажав ctrl + alt + s (чтобы перейти к настройкам) и найти правильный запас. Затем перейдите в Code Style -> Java -> Wrapping and Braces -> Right Margin (столбцы). Увеличьте длинные строки кода. Существуют также настраиваемые настройки для настройки того, что делать с lambas (сохранить при переформатировании)

1
ответ дан Bart 17 August 2018 в 13:35
поделиться
  • 1
    К несчастью, нет. Это не проблема с маржей. Следует отметить, что слово "новый" был на предыдущей строке. Чтобы скобка была открыта на следующей строке. У меня не было таких проблем с предыдущей версией. – Piotr Sobolewski 13 July 2018 в 06:37
  • 2
    В том же меню есть другие варианты, которые могут вам помочь. После изменения некоторых настроек вы можете сохранить это в пользовательской схеме для будущего использования (если эта проблема возникнет снова в будущем обновлении) – Bart 13 July 2018 в 06:39
Другие вопросы по тегам:

Похожие вопросы: