После недавних изменений в бумажном вводе и введении декоратора для подачи бумаги (полимер v0.5.1) у меня теперь возникают проблемы с внедрением ввода Проверка. Например, до недавних изменений я создал собственный полимерный элемент «property-editor» (т.е. элемент, который по существу объединяет конфигурируемый значок, настраиваемый элемент управления вводом (тип выпадающего меню или обычный ввод) и связанный с ним дополнительное управление входным значением единицы измерения (тип выпадающего меню бумаги или ввод бумаги)), и он был очень функциональным. Вот небольшой поднабор кода, показывающий один из шаблонов в вышеупомянутом настраиваемом элементе, который активировался, когда ему была предоставлена регулярная модель выражения. Это работает хорошо:Вопросы валидации с новыми компонентами-полимерами для ввода-вывода/бумажного ввода-декоратора
<template if="{{controlType == 'input' && controlValidPattern != null}}">
<paper-input id="{{controlId}}" value="{{inputValue}}" label="{{controlLabel}}" floatingLabel="{{controlFloatingLabel}}" pattern="{{controlValidPattern}}" error="{{controlErrorMsg}}" required="{{controlInputRequired}}" maxlength="{{controlMaxLength}}">
</paper-input>
</template>
Тогда я реализовал функцию inputValueChanged
наблюдател, который, в свою очередь, обстреляли пользовательское событие для хоста/потребляя элемент действовать в соответствии с требованиями.
Конечная цель, конечно, отображать сообщение об ошибке проверки для элемента управления, когда текущий вход недействителен (что может происходить «вживую» как пользовательский тип и может присутствовать, когда элемент управления загружается с исходным вводом значение), или даже лучше предотвратить ввод пользователем недопустимых данных. В любом случае функция «inputValueChanged» должна быть заблокирована, если вход не является допустимым, а также не запускать это событие, пока пользователь не покинет элемент управления (размытие и т. Д.). Я немного поиграл, пытаясь заставить это работать снова, используя новые версии бумажных элементов (см. Пример ниже), но все же с некоторым трудом. Можете ли вы любезно предоставить пример, который обеспечивает соответствие шаблону регулярных выражений, с желаемым поведением, описанным выше?
<template if="{{controlType == 'input' && controlValidPattern != null}}">
<paper-input-decorator label="{{controlLabel}}" floatingLabel="{{controlFloatingLabel}}" error="{{controlErrorMsg}}" isInvalid="{{invalidEntry}}">
<input is="core-input" id="{{controlId}}" value="{{inputValue}}" committedValue="{{committedValue}}" pattern="{{controlValidPattern}}" maxlength="{{controlMaxLength}}" required="{{controlInputRequired}}" size="{{controlWidth}}">
</paper-input-decorator>
</template>
Заранее благодарим за любой совет/пример, который вы можете предоставить!
Thanks Yvonne. Это может быть простой вопрос для ответа, но когда «id» самого входа генерируется программным способом (предоставляется через выражение усы), как получить доступ к этому свойству .validity.valid? – sinjins
Хорошо, теперь я на правильном пути ... кроме ... есть способ использовать «preventInvalidInput» с декоратором, чтобы не позволить пользователю вводить символ, который создавал бы несоответствие регулярному выражению шаблон? – sinjins
'preventInvaildInput' является свойством на' core-input', поэтому он должен работать? –