如何将复选框值设置为symfony'true'?

时间:2016-01-17 01:18:30

标签: jquery html symfony

我的代码:

 // {{ form_row(form.termsAccept) }} generates #user_termsAccept checkbox field
termsBox.attr("disabled",true);
termsBox.attr("checked",true);
termsBox.val('true'); // OR termsBox.val(1); OR termsBox.val(true); OR termsBox.val(termsBox.prop('checked'));

问题:提交后我得到'这个值应该是真的'。尽管事实上复选框的视觉状态是“真实”,但Symfony的错误。无论我想设置什么值,当通过console.log()检查时,输出值为'1'(这是symfony复选框的默认值)。

问题:如何将禁用的复选框值设置为“symfony's'true'”VIA jQuery?

2 个答案:

答案 0 :(得分:1)

构建表单(控制器)时,请使用:

$builder->add('termsBox', CheckboxType::class, array(
    'attr' => array(
        'disabled' =>'disabled',
        'checked'  => 'checked',
        'data'     => true,
    ),
));

而不是使用jQuery。 或者,在您的实体中,为字段的映射添加默认值:

protected $termsBox = true;

答案 1 :(得分:0)

禁用输入将不会被处理,替代方案是将输入设置为就绪。

不幸的是,您无法将复选框设置为只读,但解决方法是:

 <input type="checkbox" onclick="return false" /> 

这将阻止用户点击,以便您可以让您的js管理其状态