Получение значения mdl-текстового поля

У меня есть следующее текстовое поле mdl:

       <div class="mdl-textfield mdl-js-textfield" id="step_condition">
            <textarea class="mdl-textfield__input" type="text" rows="25"> </textarea>
            <label class="mdl-textfield__label" for="step_json">Step condition</label>
        </div>

Чтобы установить значение поля, которое я использую:

 $("#step_condition").get(0).MaterialTextfield.change('100');

Мои вопросы:

  • это правильный способ установки значения поля?
  • есть ли аналогичный способ получить значение поля?

Я знаю, что могу получить значение непосредственно из текстовой области, но почему-то кажется более разумным использовать API.


person Jasper Duizendstra    schedule 03.12.2015    source источник


Ответы (1)


Вы должны добавить идентификатор в текстовое поле, например:

<div class="mdl-textfield mdl-js-textfield" >
   <textarea class="mdl-textfield__input" type="text" rows="25" id="step_json"></textarea>
   <label class="mdl-textfield__label" for="step_json">Step condition</label>
</div>

Посмотрите пример на официальной спецификации, там нет id на уровне div. http://www.getmdl.io/components/index.html#textfields-section

Чтобы установить значение поля, которое вы можете сделать

$("#step_json").val("100");

Однако вам придется иметь дело с тем фактом, что метка не удаляется автоматически. Этот пост должен помочь: https://github.com/google/material-design-lite/issues/903

person Renaud Tarnec    schedule 06.12.2015
comment
Да, я понимаю добавление id к элементу, но мне кажется странным, задавать значение через апи и получать его прямо из элемента. Я использую $(#step_condition).get(0).MaterialTextfield.change('100'); из-за этикетки. Теперь мне нужно 2 идентификатора для одного элемента. Не сходится, отсюда и вопрос. - person Jasper Duizendstra; 07.12.2015
comment
@JasperDuizendstra Я согласен с вами, используя var myValue = $(#step_json).val(); не очень согласуется с тем, как изменяется значение. - person Lambert; 13.06.2016