禁用字段 - 仍然通过非禁用数据 - CAKEPHP 2

时间:2013-09-06 03:54:03

标签: javascript cakephp disabled-input

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

我已经设置了以下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 } ?>

我需要员工用户能够查看数据,但不能使用adminOnlyField类更改这些字段,其余的应该能够编辑/更新。

由于

然后,我可能在提交按钮被点击时,我可以删除readonly并使用jquery禁用,如下所示:

$('.clear_ready_only').click(function(e) 
{
   e.preventDefault();
   $('.adminOnlyField').removeAttr('disabled');
   $('.adminOnlyField').removeAttr('readonly');
   $('#CardModifysaleForm').submit();
});

它似乎不起作用?

1 个答案:

答案 0 :(得分:0)

禁用字段不会通过POST,您正在执行:

$('.adminOnlyField').attr("readonly","true");

使其成为readonly,并且它可以通过POST,但最后通过执行以下操作再次禁用相同的字段:

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

此行使其成为disabled,因此未获得POST。因此,如果您希望通过POST,请将其设为readonly,并删除以下行:

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