Stripe Elements,表单提交时的输入验证

Posted

技术标签:

【中文标题】Stripe Elements,表单提交时的输入验证【英文标题】:Stripe Elements, input validation upon form submit 【发布时间】:2022-01-06 11:17:32 【问题描述】:

我有一个使用以下反应条纹元素的支付流程。

我正在使用 onChange 道具在用户键入时显示实时错误。我还希望在用户点击提交按钮时显示这些错误。例如,如果他们没有填写任何字段并单击提交,则会显示以下错误。但是,我发现这样做的唯一方法是调用 stripe.createPaymentMethod() 需要几秒钟才能返回响应并且感觉迟缓。 onChange 道具到底使用什么来验证输入字段,我如何使用它而不是 createPaymentMethod()?

【问题讨论】:

【参考方案1】:

您可以在 Stripe Elements 上监听 change 事件并在传递给您的事件处理程序的 event 上查找 event.error handle input validation。

当条纹元素失去焦点并且它包含的值似乎无效时,event.error 将被填充并包含 codemessagetype,您可以使用它们来更新元素的外观并向用户显示message

例如,当您提供部分卡号并将焦点切换到另一个字段时,event.error 将包含以下内容:

"error": 
  "code": "incomplete_number",
  "type": "validation_error",
  "message": "Your card number is incomplete."
,

【讨论】:

以上是关于Stripe Elements,表单提交时的输入验证的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 react-stripe-elements 输入组件设置边框样式?

如何使用 Bootstrap 设置 Stripe Elements 输入的样式?

如何使用 Elements 将持卡人姓名添加到 Stripe 结账?

如何通过 Stripe Elements 在服务器端销售产品

Stripe Elements React - 如何从父组件获取条带数据?

Symfony Panther - 访问安全的 iframe?