В AMP Form я пытаюсь заполнить скрытое поле ввода, основываясь на ответе формы. Ответ является массивом внутри объекта JSON. Когда я пытаюсь вставить информацию в атрибут div [text], это работает. Но в атрибуте input [value] это не так.
Вот мой пример кода:
<form method="post" action-xhr="submit.php" target="_top"
on="submit-success: AMP.setState({answer:{display:event.response.answer}})">
<div id="response" [text]="answer.display.concat()"></div>
<input type="text" name="answer" value="" required>
<input type="hidden" name="active" value="" [value]="answer.display.concat()" />
<input type="submit" value="Submit" />
</form>
После отправки div с id "response" отобразит event.response.answer
информация, но значение скрытого ввода не изменится.
Однако, если я заменю переменную answer.display
на строку вместо массива, значение ввода будет работать. Например, это работает как ожидалось:
<form method="post" action-xhr="submit.php" target="_top"
on="submit-success: AMP.setState({answer:{display:'foobar'}})">
<div id="response" [text]="answer.display"></div>
<input type="text" name="answer" value="" required>
<input type="hidden" name="active" value="" [value]="answer.display" />
<input type="submit" value="Submit" />
</form>
Так почему же concat()
не работает внутри атрибута value
ввода, даже если он будет работать с атрибутом text
элемента div?
И, может быть, более важно, как я могу использовать ответ формы в моей форме, чтобы она могла быть отправлена снова?