Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amp html 如何使用放大器增加输入字段中的值?_Amp Html - Fatal编程技术网

Amp html 如何使用放大器增加输入字段中的值?

Amp html 如何使用放大器增加输入字段中的值?,amp-html,Amp Html,我试图创建一个按钮在放大器,将增加一个输入字段中的值。例如,您将在电子商务产品页面的quantity+-选择器中看到什么 我已经厌倦了AMP Band和AMP脚本,它们似乎都没有达到我认为的那么简单。 我的AMP-HTML: <button on="tap:AMP.setState({ value: value-1})">-</button> <input name="qty" id="qty" type=

我试图创建一个按钮在放大器,将增加一个输入字段中的值。例如,您将在电子商务产品页面的quantity+-选择器中看到什么

我已经厌倦了AMP Band和AMP脚本,它们似乎都没有达到我认为的那么简单。

我的AMP-HTML:

<button on="tap:AMP.setState({ value: value-1})">-</button>
<input name="qty" id="qty" type="number" min=1 [value]=1>
<button on="tap:AMP.setState({ value: value+1 })">+</button>

非常感谢您的帮助

您当前的解决方案非常接近。唯一缺少的是更新输入上的
[value]
绑定,以使用在单击按钮时修改的AMP状态变量。这将使该值基于状态变量动态

为了清楚起见,我将示例中的amp bind变量重命名为
currentValue

<button on="tap:AMP.setState({ state: {currentValue: state.currentValue == 1 ? 1 : state.currentValue-1}})">-</button>
<input name="qty" id="qty" type="number" min=1 value=1 [value]="state.currentValue">
<button on="tap:AMP.setState({ state: {currentValue: state.currentValue+1 }})">+</button>
  
<amp-state id="state">
  <script type="application/json">
    {"currentValue": 1}
  </script>
</amp-state>
-
+

这也是一个很好的资源。

谢谢您的回复。此解决方案的主要警告是HTML使用“value=”字段来默认输入值。我希望默认值为1,以便用户容易理解这是数量输入和最常用的选项。对于您的解决方案,默认输入将为空。我尝试创建一个amp状态,但在事件激活之前,它似乎不会加载。我想在页面加载上加载这个。目前,我唯一的解决方案是使用amp脚本并将其作为iframe嵌入,这似乎是一种痛苦的迂回方式。@Tenchu2525,我已更新了示例以满足您的需要。使用amp bind时,可以通过排除其周围的括号来设置默认属性值。因此,在本例中,我们有一个“value”属性,该属性设置加载时的默认值,还有一个“[value]”,当用户单击按钮时对amp bind求值时,该属性从amp state变量读取。我还创建了一个amp状态,将currentValue初始化为1。@Tenchu2525,我还更新了示例,以便在单击减法按钮时,通过向amp.setState()调用添加条件语句,不允许输入低于1。让我知道,如果你需要任何进一步澄清这一点!AMP在试图找出这些在正常情况下是基本的东西时,可能会非常令人沮丧。一旦您熟悉了一些常用的模式,它就会变得更容易。
<button on="tap:AMP.setState({ state: {currentValue: state.currentValue == 1 ? 1 : state.currentValue-1}})">-</button>
<input name="qty" id="qty" type="number" min=1 value=1 [value]="state.currentValue">
<button on="tap:AMP.setState({ state: {currentValue: state.currentValue+1 }})">+</button>
  
<amp-state id="state">
  <script type="application/json">
    {"currentValue": 1}
  </script>
</amp-state>