MDC-Web: mdc-text-field- обведено с предварительно заполненным значением

Я предварительно заполняю несколько текстовых полей, а границы не отображаются. введите описание изображения здесь

Я использую, например, следующий JavaScript для предварительного заполнения полей, но контур не отображается, пока я не щелкну / не щелкну поле. Я старался

var doc = document;
doc.getElementById("other-number-tf-ex-input").parentElement.classList.add("mdc-text-field--upgraded");
doc.getElementById("other-number-tf-ex-input").nextElementSibling.classList.add("mdc-text-field__label--float-above");
doc.getElementById("other-number-tf-ex-input").value = values[1].otherPhoneExtensionCode;
window.mdc.autoInit();

HTML это:

<div class="account-telephone-outlined-wrapper">
    <div class="mdc-text-field mdc-text-field--outlined mdc-text-field--dense tel-medium" data-mdc-auto-init="MDCTextField">
        <input required pattern="^[0-9]*$" type="text" id="cellular-number-tf-cc-input" class="mdc-text-field__input" aria-controls="cellular-number-tf-cc-message">
        <label for="cellular-number-tf-cc-input" class="mdc-text-field__label">1</label>
        <div class="mdc-text-field__outline">
            <svg>
                <path class="mdc-text-field__outline-path" d=""/>
            </svg>
        </div>
        <div class="mdc-text-field__idle-outline"></div>
    </div>
    <p class="mdc-text-field-helper-text mdc-text-field-helper-text--validation-msg" id="cellular-number-tf-cc-message">
        00000
    </p>
</div>

1 ответ

Решение

Вы должны явно создать экземпляр объекта MDCTextField, а затем установить значение:

var doc = document;

var field = new mdc.textField.MDCTextField(doc.getElementById("other-number-tf-ex-input-container"));
field.value = values[1].otherPhoneExtensionCode;

Это просто работает для меня и вызывает плавающий ярлык.

Обратите внимание на id другого номера-tf-ex-input-container: он должен указывать на контейнер mdc-text-field div.

Я устанавливаю только обычную отключенную конфигурацию текстового поля (отключенный класс и свойство disabled ввода), но программно устанавливаю значение, например:

myMDCtextfield.value = "myvalue";

И это вызывает плавающий ярлык:)

Другие вопросы по тегам