2016-01-17 26 views
0

我的代碼:如何將複選框值設置爲symfony'true'?

// {{ 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?

回答

1

當你建立你的表格(控制器),使用方法:

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

而不是使用jQuery。 或者,在你的實體,一個默認值添加到字段的映射:

protected $termsBox = true; 
+0

但我想改變入住當某些jQuery事件被觸發時,這就是我需要通過jQuery訪問它的原因。 – baka1408

0

禁用的輸入也不會得到處理的替代方案是隻輸入設置爲準備就緒。

不幸的是,你不能設置複選框爲只讀,但一個解決辦法是:

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

這將阻止用戶點擊,所以你可以得到你的js管理其狀態

相關問題