我有一个包含许多字段的表单,我需要将其中一些显示为只读/禁用为员工级别用户,而管理员级别用户可以保存或修改所有字段。
我已经设置了以下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();
});
它似乎不起作用?
答案 0 :(得分:0)
禁用字段不会通过POST
,您正在执行:
$('.adminOnlyField').attr("readonly","true");
使其成为readonly
,并且它可以通过POST
,但最后通过执行以下操作再次禁用相同的字段:
$('.adminOnlyField').prop('disabled', 'disabled');
此行使其成为disabled
,因此未获得POST
。因此,如果您希望通过POST
,请将其设为readonly
,并删除以下行:
$('.adminOnlyField').prop('disabled', 'disabled');