Symfony2:检查表单的最佳方式,客户端

Symfony2 : Best way to check form, client side

我正在使用 Symfony2 开发一个表单:几个文本输入和 一个文件输入(一张图片)。我在我的实体中定义了一些断言 (maxLength, minLength...) 以检查表单 (isValid)。

我的问题是:如果用户在文本输入中输入了错误数据(文本太长或太短......),他仍然可以提交表格,错误并打印,但用户必须重新选择他的图片

因为我认为在错误验证后不可能将图片保留在表单中,我应该在提交之前检查客户端 (javascript) 中的表单。

那么,是否有自动执行此操作的方法(在数据正确之前禁止提交)?我们可以在 twig 中获取 assert minLength, maxLength 值吗?

谢谢! 本.

可以在提交数据之前使用js验证,使用一些js表单验证tools,但是这种方式需要从服务器复制验证逻辑,所以如果验证规则发生变化,则需要修改在服务器端和客户端。我推荐这种方法来减少客户端-服务器之间的流量。

如果您不想这样做,请使用 ajax 表单提交 ()。您仍然使用 symfony 验证表单,但页面不会刷新,因此您不会丢失附加文件。但这会给服务器带来额外的流量,您还需要使用 javascript.

实现错误显示