我关注Braintree Payments docs。要设置信用卡付款方式,它表示表单代码如下所示:
<form id="checkout" action="/your/server/endpoint" method="post">
<input data-braintree-name="number" value="4111111111111111">
<input data-braintree-name="expiration_date" value="10/20">
<input type="submit" id="submit" value="Pay">
</form>
但我已经有一个表单设置,它接受所有其他必要的输入(它基本上是一个向用户收费的问答网站)并将其提交给数据库。我会在哪里放置Braintree文档给出的表单代码?你可以在另一个表单中嵌套表单吗?这是推荐的做法吗?我应该将表单分开并仅在另一页上处理付款吗?理想情况下,我想在一个页面上完成整个过程,如果选择该方法,可能会提取信用卡付款方式表单。
答案 0 :(得分:1)
完全披露:我在Braintree工作。如果您有任何其他问题,请随时联系support。
根据working HTML5 specification,<form>
元素不应包含其他<form>
元素,因此嵌套表单实际上在技术上无效的HTML。考虑到这一点,我们可以有把握地说这不是推荐的做法。 :)
但是,页面可以包含多个表单。请记住,由于表单的性质(它将数据发送到端点并加载该端点),您将无法同时从同一页面提交多个表单。一种常见的模式是使用专门用于以单一形式收集付款数据的结帐页面。
如果您只想使用一个页面和一个表单,Braintree可以容纳它。 Braintree数据输入元素不必是表单中的唯一元素。例如,您可以包含询问用户姓名,出生地或其他任何内容的输入元素。当您将braintree.setup
指向表单时,它只会关注您使用“data-braintree-name”标记的输入字段,并且所有正常命名字段仍将位于您的{{1变量。