如何根据失败的验证添加 Symfony 表单字段?

发布于 2024-10-19 11:41:51 字数 279 浏览 6 评论 0原文

基本上,我的模型要求将对象绑定到物理位置。为此,我使用用户在文本字段中输入的关键字通过 AJAX 从 API 中提取位置,jQuery 自动完成设置为当用户选择推荐给他们的有效位置时将隐藏字段设置为唯一 ID。

假设用户有 JavaScript 并单击某个位置,这一切都很好。

我需要实现后备,即无论出于何种原因,如果提交表单时隐藏字段没有值,则表单应使用可见中的任何内容来查询 API 并显示一个选择框供用户从中选择值。

我大致知道我需要添加的代码,但我不知道将其绑定到哪里。任何帮助表示赞赏。

Basically, my model requires that an object is tied to a physical location. For this I'm pulling locations from an API via AJAX using keywords entered by a user in a text field, jQuery autocomplete is setup to set a hidden field to a unique ID when the user selects a valid location recommended to them.

This is all fine, assuming the user has JavaScript and clicks a location.

I need to implement a fallback, i.e. for whatever reason, if the form is submitted without the hidden field having a value, the form should use whatever is in the visible to query the API and present a select box for users to choose a value from.

I know roughly the code I need to add, but I'm lost as to where to bind it in. Any help appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

掌心的温暖 2024-10-26 11:41:51

本质上,您必须创建一个客户小部件并使用它代替位置表单字段。然后,您可以将 javascript 添加到小部件渲染中。如果您扩展 sfWidgetChoice 或等效的学说,它将默认为选择框。然后,如果启用了 js,您的小部件的 js 会将字段重写为自动完成。

查看 sfFormExtraPlugin 了解如何执行此操作的一些很好的示例。

Essentially you have to create a custome widget and use it in place of the locations form field. You can then add you javascript to the widgets rendering. If you extend sfWidgetChoice or the doctrine equivalent it will default to a select box. Then if js is enabled your widget's js will rewrite the field to an auto complete.

Have a look at the sfFormExtraPlugin for some great examples of how to do this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文