Javascript Cakephp 3.6.14:使datetime字段为只读

Javascript Cakephp 3.6.14:使datetime字段为只读,javascript,php,cakephp,datetimepicker,readonly,Javascript,Php,Cakephp,Datetimepicker,Readonly,我在CakePHP中有一个datetime控件,我正在尝试将其设置为只读(readonly属性适用于文本字段) 这就是我尝试过的: CakePHP-way: echo$this->Form->control('date_start',['empty'=>true,'readonly'=>'readonly']) 或 echo$this->Form->control('date_start',['empty'=>true,'readonly'=>true') JavaScript: $this->

我在
CakePHP
中有一个datetime控件,我正在尝试将其设置为只读(
readonly
属性适用于文本字段)

这就是我尝试过的:

CakePHP-way

echo$this->Form->control('date_start',['empty'=>true,'readonly'=>'readonly'])

echo$this->Form->control('date_start',['empty'=>true,'readonly'=>true')

JavaScript

$this->Html->scriptBlock(“document.getElementById('#datestart')。readonly=true;”

echo$this->Form->control('date_start',['id'=>datestart','empty'=>true])


但它们都不起作用。如何实现我想要的。

您正在寻找禁用的属性: 注意,如果输入被禁用,则不会提交(见下文)

CakePHP:

echo $this->Form->control('date_start', ['empty' => true, 'disabled' => 'true']);
Jquery,获取或设置值(抱歉,我从未尝试使用vanilla Javascript):

如果输入被禁用,则不会提交。 也许这并不是你所期望的。 有关(许多)可能的解决方法,请参见此问题:

但如果禁用,该值将不会发布到控制器。。。对吗?我想保存这个值。例如,我加载已存储在数据库中的datetime值,用户可以看到该值,但无法更改它。用户可以编辑其他字段,然后保存更改
$( elem ).prop( "disabled" )

$( elem ).prop( "disabled", true )