Мне нужно установить значение по умолчанию для ввода текста в сочетании с селектором усилителя и пользовательской проверкой, но я буду знать входное значение в конце кода, поэтому я не могу установить его по атрибуту значения.
Давайте начнем с начала, атрибут «требуемый» не поддерживается для усилителя-селектора, поэтому мне пришлось сделать кастом, и он работает.
<form method="GET" target="_top" custom-validation-reporting="show-first-on-submit">
<input type="text" id="myInput" class="hidden" required [value]="product.item">
<div visible-when-invalid="valueMissing" validation-for="myInput">This field is required.</div>
<amp-selector on="select:AMP.setState({ product : { item : event.targetOption } })" layout="container">
<div option="a">One</div>
<div option="b">Two</div>
<div option="c">Three</div>
</amp-selector>
<input type="submit">
</form>
Первый параметр этого селектора должен бытьвыбран, и моя первая попытка была просто:
<form method="GET" target="_top" custom-validation-reporting="show-first-on-submit">
<!-- Here I don't know the input value -->
<input type="text" id="myInput" class="hidden" required [value]="product.item">
<div visible-when-invalid="valueMissing" validation-for="myInput">This field is required.</div>
<amp-selector on="select:AMP.setState({ product : { item : event.targetOption } })" layout="container">
<!-- From here I know the input value, in this example "a" -->
<div option="a" selected>One</div>
<div option="b">Two</div>
<div option="c">Three</div>
</amp-selector>
<input type="submit">
</form>
Это, очевидно, работает, но не на всех. Этот селектор является фальшивым полем, реальное поле - это входные данные с id = "myInput".
Итак, сейчас я думаю установить состояние по умолчанию, и я попытался с этим, но не сработал. ..
<form method="GET" target="_top" custom-validation-reporting="show-first-on-submit">
<input type="text" id="myInput" class="hidden" required [value]="product.item">
<div visible-when-invalid="valueMissing" validation-for="myInput">This field is required.</div>
<amp-selector on="select:AMP.setState({ product : { item : event.targetOption } })" layout="container">
<div option="a" selected>One</div>
<div option="b">Two</div>
<div option="c">Three</div>
</amp-selector>
<input type="submit">
</form>
<amp-state id="product">
<script type="application/json">{ "item" : "a" }</script>
</amp-state>
Я много искал, но не могу решить ..
Где ошибка? Как я могу решить?
Заранее спасибо