我有一个表单,其中包含一个下拉列表和一个复选框。该复选框控制下拉菜单是否从表单的初始呈现中被“禁用”(灰显)。我有JS,当您取消选中该框时,它将启用该字段,并且现在允许用户更改该值。这一切都行得通。
当您取消选中该框并更改下拉列表中的值时,Symfony仅保留复选框的值,并忽略下拉列表中的新值。我认为这是因为symfony知道在最初呈现表单时禁用了该框,并忽略了更改该值时发布的任何新值。
我检查了分析器,它提交了复选框(1)的新值和post字段中下拉列表的新值。
profiler的doctrine选项卡只显示正在更新的复选框值,而不显示新的下拉值。
希望有人能给我指明正确的方向。希望是一些简单的选项,告诉symfony更新所有内容,无论它最初是否呈现为禁用字段。
发布于 2020-04-09 02:21:46
您需要使用readonly属性,并使用JS或jQuery来更改字段的状态。我在Symfony 4中这样做了。
->add('someInput', TextType::class, array(
'attr' => array(
'readonly' => true,
),
));然后使用JS根据某个值动态修改它
if( someCondition ){
$(input).prop('readonly', false).attr('required',true);
} else{
$(input).prop('readonly', true).attr('required',false);
}https://stackoverflow.com/questions/36665726
复制相似问题