我有一个下拉表单元素.最初它开始是空的,但是在用户进行了一些交互之后,它通过javascript填充了值.多数民众赞成.但是,当我提交它时,它总是返回验证错误This value is not valid.
.
如果我将项目添加到表单代码中的选项列表中,它将验证确定,但是我正在尝试动态填充它,并且预先将项目添加到选项列表不起作用.
我认为这个问题是因为表单正在验证一个空的项目列表.我根本不希望它根据列表进行验证.我已将验证设置为false.我将chocie类型切换为文本,并始终通过验证.
这只会针对添加到选项列表中的空行或项进行验证
$builder->add('verified_city', 'choice', array(
'required' => false
));
Run Code Online (Sandbox Code Playgroud)
类似的问题在这里没有得到回答.
在Symfony 2中验证动态加载的选项
假设你不知道所有可用的选择是什么.它可以从外部Web源加载吗?
是否可以禁用指定字段的后端(服务器端)验证?
我正在尝试使用动态加载的选项发送表单我得到错误"错误:此值无效."
我认为symfony正在检查我的值是否在默认声明列表中(在我的情况下是空列表),如果不是则返回false.
在我的项目中,我有一些带有很多选项的选择类型的表单.
所以我决定基于jquery自动完成构建一个自动完成选择类型,它在运行时将新的<option>
HTML元素添加到原始元素<select>
.选择后,它们会被正确提交,但无法在默认情况下处理ChoicesToValuesTransformer
,因为创建它时我的表单中不存在.
如何让symfony接受我动态添加的值?
我找到了这个答案在Symfony 2中验证动态加载的选项,其中提交的值用于修改PRE_SUBMIT
表单事件上的表单,但无法使其运行我的情况.我需要更改当前类型已知的选择,而不是向窗体添加新窗口小部件