1

在 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属性一起工作呢?

也许更重要的是,我怎样才能在我的表单中使用表单的响应,以便它可以再次提交?

4

0 回答 0