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

时间:2016-03-17 07:45:15

标签: validation symfony input twig client-side

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

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

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

那么,有没有一种自动方法可以做到这一点(在数据正确之前禁止提交)?我们可以在twig中获得断言minLength,maxLength值吗?

谢谢! 本。

1 个答案:

答案 0 :(得分:1)

您可以在使用某些js表单验证tools提交数据之前使用js验证,但这样您需要从服务器复制验证逻辑,因此如果验证规则发生更改,则需要同时修改服务器和客户端。我建议使用此方法来减少客户端 - 服务器之间的流量。

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