javascript - 无法在表单提交成功事件 AMP 上设置状态
问题描述
当我在提交成功事件上提交表单时,我试图提交另一个表单,但它会导致信任级别错误,指出提交成功没有相同的信任级别来设置状态。我检查了 amp-form submit 事件和 setState 事件的信任级别与 HIGH 相同,但没有找到 submit-success 事件的信任级别
"submit-success" event with "low" trust is not allowed to invoke "amp.setState".
虚拟示例
<form id="f1" method="POST" xhr-action="dummyapi" on="submit-success:AMP.setState({dummy:true})">
<!--fields-->
</form>
<form id="f2" method="POST" xhr-action="dummyapi" on="submit-success:f1.submit">
<!--fields-->
</form>
提交表单 f1 时的 setState 不起作用
解决方案
兄弟,你的密码呢?为什么不能插入简单有效的 AMP 模板?您可能希望有人为您做所有事情,但这并不总是会发生。
我试着做你写的,一切都对我有用,看:
<!--
This is the minimum valid AMP HTML document. Type away
here and the AMP Validator will re-check your document on the fly.
-->
<!DOCTYPE html>
<html ⚡>
<head>
<meta charset="utf-8" />
<link rel="canonical" href="self.html" />
<meta name="viewport" content="width=device-width,minimum-scale=1" />
<style amp-boilerplate>
body {
-webkit-animation: -amp-start 8s steps(1, end) 0s 1 normal both;
-moz-animation: -amp-start 8s steps(1, end) 0s 1 normal both;
-ms-animation: -amp-start 8s steps(1, end) 0s 1 normal both;
animation: -amp-start 8s steps(1, end) 0s 1 normal both;
}
@-webkit-keyframes -amp-start {
from {
visibility: hidden;
}
to {
visibility: visible;
}
}
@-moz-keyframes -amp-start {
from {
visibility: hidden;
}
to {
visibility: visible;
}
}
@-ms-keyframes -amp-start {
from {
visibility: hidden;
}
to {
visibility: visible;
}
}
@-o-keyframes -amp-start {
from {
visibility: hidden;
}
to {
visibility: visible;
}
}
@keyframes -amp-start {
from {
visibility: hidden;
}
to {
visibility: visible;
}
}
</style>
<noscript>
<style amp-boilerplate>
body {
-webkit-animation: none;
-moz-animation: none;
-ms-animation: none;
animation: none;
}
</style>
</noscript>
<script async src="https://cdn.ampproject.org/v0.js"></script>
<script async custom-element="amp-form" src="https://cdn.ampproject.org/v0/amp-form-0.1.js"></script>
</head>
<body>
<h2>First form</h2>
<form id="secondForm" method="post" target="_top" action-xhr="https://amp.dev/documentation/examples/api/echo">
<input type="hidden" value="hiddenValue">
<div submit-success>Second form send successful!</div>
<div submit-error>Second form send failed!</div>
</form>
<hr>
<h2>Second form</h2>
<form id="firstForm" method="post" target="_top" action-xhr="https://amp.dev/documentation/examples/api/verify-form-input-text-xhr" on="submit-success:secondForm.submit">
<button type="submit">Submit</button>
<div submit-success>First form send successful!</div>
<div submit-error>First form send failed!</div>
</form>
</body>
</html>
代码笔: https ://codepen.io/alexandr-kazakov/pen/wvGJvzJ ?editors=1000
推荐阅读
- r - read.table 并删除最后几行 (R)
- mysql - Trigger to allow only rent a car up to 7 days Max
- javascript - 在 mouseup 文本选择 + HTML5/jQuery 上覆盖突出显示的文本
- java - 使用gpu加速java应用
- javascript - Create dropdown from JSON data on HTML page using Google Apps Script
- angular - 尽管我收到了 200 个代码,但 Spring Boot 响应仍返回错误
- python - Check dimensionality of complex unit in pint
- dart - 如何在 Flutter 中向 AnimationController 添加 Curves 类动画?
- android - 禁用 Firebase 数据类型消息
- entity-framework - 多对多关系代码优先时出错