Обычно с Materialize ярлыки для полей ввода текста отображаются внутри полей ввода до тех пор, пока пользователь не вводит этот флажок и не вводит текст в нем. Однако, когда значение поля заполняется с помощью javascript, метка не уходит с пути. Он остается в поле и перекрывается с введенным текстом. Есть ли способ инициировать переход метки с помощью javascript, так что этого не происходит?
Сделать материализацию меток перемещаться из поля ввода, когда поле ввода заполняется с помощью javascript
Ответ 1
Более конкретно, если вы используете Materialize в Rails с включенными турболинками, вы обнаружите, что поля формы Materialize, которые предварительно заполнены непустыми значениями, не активны при загрузке страницы.
У меня работал следующий метод:
$(function() {
M.updateTextFields();
});
Это добавит класс 'active'
к соответствующим меткам и значкам префиксов.
Ответ 2
Поведение перехода на ярлык запускается путем добавления класса active
к элементу метки. Таким образом, если вы сделаете свой javascript, добавьте этот класс к метке (например, $('label').addClass('active')
) в дополнение к заполнению поля, метка будет переходить из поля так же, как и при выборе пользователем.
Ответ 3
Событие document.ready
срабатывает только один раз, когда работает turbolinks, поэтому вместо этого вам нужно подключиться к событию загрузки turbolinks.
Это происходит так быстро, что, если вы хотите увидеть анимацию, заверните ее в крошечный тайм-аут.
С тайм-аутом/видимой анимацией
document.addEventListener('turbolinks:load', () => {
setTimeout(() => {
M.updateTextFields();
}, 100);
});
Без тайм-аута/видимой анимации
document.addEventListener('turbolinks:load', () => {
M.updateTextFields();
});
Rails 5 с Turbolinks и Materialise CSS 1.0.0
Ответ 4
Добавьте class="active"
в тег label
связанный с полем ввода.
Ответ 5
С помощью JQuery вы можете использовать $ ( '# YourInputText') изменить();.
Ответ 6
Если вы используете более старую версию (0.x) Materializecss, используйте:
Materialize.updateTextFields();
вместо:
M.updateTextFields();
Ответ 7
Если вы используете ярлыки, вы будете использовать:
$("label[for='idTag']").addClass('active');