Amp html Amp表单如何切换禁用的属性

Amp html Amp表单如何切换禁用的属性,amp-html,google-amp,amp-bind,Amp Html,Google Amp,Amp Bind,我有一个带有几个单选按钮的放大器窗体。根据选择的单选按钮,我想禁用或启用输入字段。默认情况下,输入字段处于禁用状态 如果输入包含disabled属性,则该字段始终处于禁用状态。我已尝试设置disabled=“disabled”,然后将其更改为disabled=“enabled”,但由于存在disabled属性,该选项不起作用 [disabled]="formFeedBack.hoursEnable" disabled="disabled" 其中,我使用on=“change:Amp.s

我有一个带有几个单选按钮的放大器窗体。根据选择的单选按钮,我想禁用或启用输入字段。默认情况下,输入字段处于禁用状态

如果输入包含disabled属性,则该字段始终处于禁用状态。我已尝试设置disabled=“disabled”,然后将其更改为disabled=“enabled”,但由于存在disabled属性,该选项不起作用

     [disabled]="formFeedBack.hoursEnable" disabled="disabled"
其中,我使用on=“change:Amp.setState…”将值hourEnabled更改为“enabled”或“disabled”


在AMP的限制范围内,如何在禁用和启用状态之间切换?

不幸的是,在AMP中还不能添加/删除属性。该状态表示您可以使用
[disabled]
但我相信任何检测到
disabled
属性的浏览器都会将字段视为disabled

不过,您可以做如下操作来模拟禁用的字段

.hide{
显示:无;
}

禁用第一个字段
禁用第二个字段
第一场
第二场
不幸的是,在AMP中还不可能添加/删除属性。确实声明您可以使用
[disabled]
,但我相信任何检测到
disabled
属性存在的浏览器都会将字段视为disabled

不过,您可以做如下操作来模拟禁用的字段

.hide{
显示:无;
}

禁用第一个字段
禁用第二个字段
第一场
第二场
您也可以使用amp list来解决这个问题。好处是您将有一个字段,其名称将与提交时的对象绑定相匹配

amp list需要一个有效的src json。如果您将其指向一个格式如下的有效json,则当页面首次加载时,输入框将显示:

{
  "items": [ { "disabled": "enabled" } ]
}

{
“项目”:[{“已禁用”:“已启用”}],
“城市”:”
}
启用城市框
禁用城市框
城市

您也可以使用amp list来解决这个问题。好处是您将有一个字段,其名称将与提交时的对象绑定相匹配

amp list需要一个有效的src json。如果您将其指向一个格式如下的有效json,则当页面首次加载时,输入框将显示:

{
  "items": [ { "disabled": "enabled" } ]
}

{
“项目”:[{“已禁用”:“已启用”}],
“城市”:”
}
启用城市框
禁用城市框
城市

AMP不支持删除或添加布尔属性

布尔表达式结果切换布尔属性。例如: 。当expr的计算结果为true时 元素具有controls属性。当expr计算为 如果为false,则删除控件属性

这项工作:

<form on="valid:AMP.setState({disable: false});>
<input type="submit" disabled [disabled]="disable" value="Go"/>

AMP不支持删除或添加布尔属性

布尔表达式结果切换布尔属性。例如: 。当expr的计算结果为true时 元素具有controls属性。当expr计算为 如果为false,则删除控件属性

这项工作:

<form on="valid:AMP.setState({disable: false});>
<input type="submit" disabled [disabled]="disable" value="Go"/>

这是一个非常好的主意,但它会导致一些复杂的情况,因为在一个字段中输入的值,然后被切换的值仍将与表单一起提交。这可以在服务器端处理。幸运的是,我发现了一个更简单的解决方法,它更适合我的用例。我的输入是type=number,所以我将min和max设置为0,而它应该被禁用led,然后在启用时指向正确的值。如果输入的值错误,HTML验证将阻止提交表单。这是一个非常好的主意,但它会导致一些复杂情况,因为在一个字段中输入的值,然后被切换的值仍将与表单一起提交。这可以在服务器端处理。幸运的是,我找到了一个更简单的解决方法更适合我的使用情况。我的输入是type=number,所以我将min和max设置为0,当它应该被禁用时,然后在启用时设置为正确的值。如果输入的值错误,HTML验证将阻止表单提交。此解决方案会导致amp验证错误,因为amp Mustach无法用于添加表单将属性添加到标记。此解决方案会导致amp验证错误,因为amp Mustach无法用于向标记添加属性。