0

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

我已经设置了以下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 类更改这些字段的数据,其余的他们应该能够编辑/更新。

谢谢

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

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

它似乎不起作用?

4

1 回答 1

0

禁用的字段不会通过POST,你正在做:

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

这使得它readonly,它可以通过POST,但最后你再次禁用相同的字段:

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

这条线使得它disabled没有得到POST'ed。因此,如果您想让它通过 thru POST,请 make itreadonly并删除以下行:

$('.adminOnlyField').prop('disabled', 'disabled');
于 2013-09-06T04:23:10.943 回答