简体   繁体   English

AMP tap event 改变value属性的内容

[英]AMP tap event Change the contents of the value attribute

Hello!你好!

I'm using amp-bind method.我正在使用 amp-bind 方法。 I track the click of a button.我跟踪按钮的点击。 I call the modal window.我称之为模态窗口。 With this all okay.有了这个就没事了。 Next, I want to change the contents of the input value attribute.接下来,我要更改输入值属性的内容。 Take the value from the button that triggered the event.从触发事件的按钮中获取值。

My code:我的代码:

 .amp-lightbox { background: rgba(0, 0, 0, 0.8); } .amp-lightbox__content { background-color: #fff; position: absolute; top: 50%; transform: translate(-50%, -50%); left: 50%; max-width: 550px; width: 90%; }
 <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> <script async custom-element="amp-lightbox" src="https://cdn.ampproject.org/v0/amp-lightbox-0.1.js"></script> <amp-lightbox id="amp-lightbox" layout="nodisplay" class="amp-lightbox"> <div class="amp-lightbox__content"> <form id="form-modal" action-xhr="amp-mail.php" target="_top" method="post"> <input type="text" name="id" [value]="customvalue"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> </form> </div> </amp-lightbox> <button value="2654" on="tap:amp-lightbox, AMP.setState({customvalue: event.value})" class="button">Order</button>

I will have many buttons, and one modal window.我将有许多按钮和一个模态窗口。 I need to take a value from the button that caused the event, and write it to the modal window element.我需要从导致事件的按钮中获取一个值,并将其写入模态窗口元素。 How can i do this?我怎样才能做到这一点?

Thank you very much in advance!非常感谢您提前!

I'm not really sure if you can use value as attribute for button there's no mention in the docs .我不确定您是否可以使用value作为button的属性, 文档中没有提及。 However, if you're going to have multiple buttons then you can just directly set value in set state for each button.但是,如果您要拥有多个按钮,那么您可以直接在设置状态中为每个按钮设置值。

 .amp-lightbox { background: rgba(0, 0, 0, 0.8); } .amp-lightbox__content { background-color: #fff; position: absolute; top: 50%; transform: translate(-50%, -50%); left: 50%; max-width: 550px; width: 90%; }
 <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> <script async custom-element="amp-lightbox" src="https://cdn.ampproject.org/v0/amp-lightbox-0.1.js"></script> <amp-lightbox id="amp-lightbox" layout="nodisplay" class="amp-lightbox"> <div class="amp-lightbox__content"> <form id="form-modal" action-xhr="amp-mail.php" target="_top" method="post"> <input type="text" name="id" [value]="customvalue"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> </form> </div> </amp-lightbox> <button on="tap:amp-lightbox, AMP.setState({customvalue: '2654'})" class="button">Order 2654</button> <button on="tap:amp-lightbox, AMP.setState({customvalue: '2655'})" class="button">Order 2655</button> <button on="tap:amp-lightbox, AMP.setState({customvalue: '2656'})" class="button">Order 2656</button>

To get the value of a button (or other clicked element) use this code:要获取按钮(或其他点击元素)的值,请使用以下代码:

 <button id="test" value="1234" onclick="recover(value,id)">Lorem</button> <script> function recover(value,id) { alert(value); document.getElementById(id).value = "Your value HERE"; } </script>

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

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