Javascript 禁用字段-仍然传递非禁用数据-CAKEPHP 2

Javascript 禁用字段-仍然传递非禁用数据-CAKEPHP 2,javascript,cakephp,disabled-input,Javascript,Cakephp,Disabled Input,我有一个表单,它有许多字段,我需要将其中一些字段显示为只读/禁用,供员工级用户使用,而管理员级用户可以保存或修改所有字段 我已经设置了以下javascript,它将字段显示为只读,但是它不会将任何数据传递给模型,$this->request->data是一个空白数组,启用了此javascript <?php if ($this->Session->read('Auth.User.group_id') == 3) { ?> <script type="text/ja

我有一个表单,它有许多字段,我需要将其中一些字段显示为只读/禁用,供员工级用户使用,而管理员级用户可以保存或修改所有字段

我已经设置了以下javascript,它将字段显示为只读,但是它不会将任何数据传递给模型,$this->request->data是一个空白数组,启用了此javascript

<?php if ($this->Session->read('Auth.User.group_id') == 3) { ?>

<script type="text/javascript">
$(function () {

$('.adminOnlyField').attr("readonly","true");
$('.checkbox.adminOnlyField').attr("onclick","return false");
$('.checkbox.adminOnlyField').attr("onkeydown","return false");
$('.adminOnlyField').removeClass('required');
$('.adminOnlyField').removeClass('date_picker');
$('.adminOnlyField').prop('disabled', 'disabled');

});
</script>

<?php } ?>

但它似乎不起作用?

禁用的字段不会通过
POST
,您正在执行以下操作:

$('.adminOnlyField').attr("readonly","true");
这使得它成为只读的,并且它可以通过POST,但最后你可以通过以下操作再次禁用相同的字段:

$('.adminOnlyField').prop('disabled', 'disabled');
这一行使它被禁用,因此它不会被
POST
编辑。因此,如果要使它通过
POST
,请将其设置为
只读
,并删除以下行:

$('.adminOnlyField').prop('disabled', 'disabled');

谢谢,我遇到的问题是readonly,它似乎不适用于所选字段。然而,残疾人确实如此。如何解决此问题?@sluggerdog对于选择字段,您可以这样做::使用“disabled”属性并添加一个隐藏的输入字段,该字段保存选择字段的选定值,通过这种方式,您可以发布所选数据并禁用选择字段。是的,这是我的备份选项,但我也想知道,当按下提交按钮时,是否可以以某种方式删除已禁用和只读字段?我在我尝试过的原始帖子中添加了一些示例代码,但似乎不起作用。。谢谢
$('.adminOnlyField').prop('disabled', 'disabled');