简体   繁体   English

AMP表单选择如何获取数据属性的值?

[英]AMP form select How to get the value of the data attribute?

Hello! 你好!

I'm using amp-bind method. 我正在使用amp-bind方法。 At the AMP form I track select event change. 在AMP表格中,我跟踪选择事件的变化。 Next, I change the value of the page element. 接下来,我更改页面元素的值。

This all works fine, for example: 一切正常,例如:

 <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> <script async custom-element="amp-bind" src="https://cdn.ampproject.org/v0/amp-bind-0.1.js"></script> <form method="post" action-xhr="#"> <select name="items-select" on="change:AMP.setState({item: event.value})"> <option value="Milk">Milk</option> <option value="Chocolate">Chocolate</option> <option value="Cookies">Cookies</option> </select> </form> <p [text]="'Field Value: ' + item">Field Value: secret</p> 

My question concerns the following: How do I read the values of the data attribute? 我的问题涉及以下内容:如何读取数据属性的值?

For example here: 例如这里:

<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>
<script async custom-element="amp-bind" src="https://cdn.ampproject.org/v0/amp-bind-0.1.js"></script>

<form method="post" action-xhr="#">
  <select name="items-select" on="change:AMP.setState({item: event.value})">
    <option data-id="1" data-name="item-4453" data-discount="0" value="Milk">Milk</option>
    <option data-id="2" data-name="item-4454" data-discount="1" value="Chocolate">Chocolate</option>
    <option data-id="3" data-name="item-4455" data-discount="1" value="Cookies">Cookies</option>
  </select>
</form>

How do I get the value of all the data- for the selected item? 如何获取所选项目的所有数据的值?

Thanks! 谢谢!

  <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> <script async custom-element="amp-bind" src="https://cdn.ampproject.org/v0/amp-bind-0.1.js"></script> <form method="post" action-xhr="#"> <select name="items-select" on="change:AMP.setState({item: event.value})"> <option value="1,Milk">Milk</option> <option value="2,Chocolate">Chocolate</option> <option value="3,Cookies">Cookies</option> </select> </form> <p [text]="'Field Value: ' + item.split(',')[0] + ' Field Name: ' + item.split(',')[1]">Field Value: 1 Field Name: Milk</p> 

EDIT: It turns out what you need to do is much simpler than using <amp-selector> . 编辑:事实证明,你需要做的事情要比使用<amp-selector>简单得多。 Currently, there is no possible way to set data from multiple attributes. 目前,没有可能的方法来设置多个属性的数据。 However, could use comma , or semicolon ; 但是,可以使用逗号,或者分号; delimited string (whichever suits you) 带分隔符的字符串(适合你)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM