在 AMP 表单中,我试图根据表单响应填写隐藏的输入字段。响应是 JSON 对象内的一个数组。当我尝试将信息提取到 div 的 [text] 属性中时,它会起作用。但在输入的 [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>
提交后,id为“response”的div会显示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
属性内部工作,即使它可以与 div 的text
属性一起工作呢?
也许更重要的是,我怎样才能在我的表单中使用表单的响应,以便它可以再次提交?