Wix Velo:如何获取checkoutBooking所需FormFields的_id并实例化对象?
如何获取自定义预订表单字段ID并实例化FormFields对象
1. 通过服务API拉取自定义表单字段元数据
调用对应服务的详情查询API(通常是GET /api/services/{serviceId}这类端点),响应数据里会包含该服务绑定的自定义预订表单信息,其中的fields数组会列出所有表单字段,每个字段对象都带有唯一的_id属性。
比如返回结构大概是:
{ "id": "service_789", "name": "上门维修服务", "customBookingForm": { "fields": [ { "_id": "field_123", "label": "联系人姓名", "type": "text" }, { "_id": "field_456", "label": "联系电话", "type": "phone" } ] } }
2. 关联表单控件与字段ID
在渲染你自己的自定义注册表单时,把每个输入控件和对应的字段_id绑定起来——比如可以把_id存在控件的data-field-id属性里,或者在前端状态中维护“控件标识-字段ID”的映射关系。这样用户填写完表单后,就能快速匹配到对应的字段ID。
3. 构造FormFields对象
收集用户输入后,以字段的_id作为键,用户输入的值作为值,组装成键值对集合:
// 示例:假设从表单获取了用户输入,且已拿到字段ID映射 const formFields = { "field_123": document.querySelector('[data-field-id="field_123"]').value, "field_456": document.querySelector('[data-field-id="field_456"]').value };
这个formFields对象就可以直接传给checkoutBooking方法使用。
注意要点
- 确保API请求携带正确的授权信息,避免因权限不足无法获取表单字段数据
- 匹配字段类型:比如日期字段要传入符合格式的字符串,下拉框要传入字段定义中允许的选项值,否则提交会失败
内容的提问来源于stack exchange,提问作者ffrugone
相关产品推荐
相关产品推荐

