Forms $this->;请求->;数据为空-禁用字段CakePHP 2时

Forms $this->;请求->;数据为空-禁用字段CakePHP 2时,forms,cakephp,model,cakephp-2.0,Forms,Cakephp,Model,Cakephp 2.0,我有一个表单,它有一些禁用的字段,当表单提交时,$this->request->data和$\u POST都是空的,删除禁用的字段后就可以了。我想它仍然会通过非禁用字段。我甚至尝试在按下submit按钮时删除disabled field属性,但这仍然返回一个空数组 是否有蛋糕相关的东西可能导致这种情况 谢谢 //查看代码中的代码段: $this->Form->create('Card', array('class' => 'GeneralValidate')); $this-

我有一个表单,它有一些禁用的字段,当表单提交时,$this->request->data和$\u POST都是空的,删除禁用的字段后就可以了。我想它仍然会通过非禁用字段。我甚至尝试在按下submit按钮时删除disabled field属性,但这仍然返回一个空数组

是否有蛋糕相关的东西可能导致这种情况

谢谢

//查看代码中的代码段:

$this->Form->create('Card', array('class' => 'GeneralValidate'));

$this->Form->input('Card.property_id', array('type'=>'select', 'empty'=>true , 'class' => 'required adminOnlyField', 'div' => array('class' => 'required'))); 
$this->Form->input('Card.building_id', array('type'=>'select', 'empty'=>true, 'id' => 'BuildingSelector', 'class' => 'adminOnlyField', 'label' => 'Building (If Applicable)')); 
$this->Form->input('Prospect.waiting_list_details', array('value' => $prospect['Prospect']['waiting_list_details']));
$this->Form->input('SaleDetail.property_sold', array('class' => 'checkbox', 'checked' => $ps_checked));
$this->Form->input('SaleDetail.date_conditions_met', array('type'=>'text', 'class' => 'text date_picker adminOnlyField', 'value' => $this->Date->format($saledetail['SaleDetail']['date_conditions_met'])));
$this->Form->button('Save & Continue', array('type'=>'submit', 'label' => 'Save', 'name' => 'quicksave' , 'class' => 'submit long clear_ready_only'));
//视图中的JS

$(function () {

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



$('.clear_ready_only').click(function(e) 
{
    e.preventDefault();
    $adminOnly.prop('disabled',false).prop('readonly',false);
    $adminOnly.attr("onclick","return true");
    $adminOnly.attr("onkeydown","return true");
    $('#CardModifysaleForm').submit();
});

});

这就是HTML的工作方式,禁用后不会发布。CakePHP无法更改从浏览器发送的内容。如果仍然需要该值,可以将其设置为隐藏元素

更新 我看到一些问题:

  • 视图中缺少
    Form::end()
    (插入时始终为a)
  • 你从来没有说过你的表单是从JS提交的,首先用一个简单的表单测试,然后是JS
  • 您的JS代码设置为通过ID
    CardModifysaleForm
    提交表单。您提供的视图代码中没有这样的ID,并且您没有将表单设置为您提供的代码段中的ID

  • 最后,我删除了这个选项中的disabled,只保留ready,并添加了一些额外的CSS样式,因此用户看起来它是禁用的。这不是问题的确切答案,但可以作为一种不同的方法。

    我理解这一点,但我认为非禁用字段仍然应该出现?我在表单上有3个禁用字段和10个非禁用字段,当这3个字段被禁用时,其他数据也不会出现?好的,一开始不清楚的是,当你发布时,你没有从你的问题中得到任何字段。你能用你的查看代码更新你的问题吗?好的,谢谢,我已经输入了一段代码,表单创建行,几行有禁用的类,一些没有,然后是按钮。我还输入了我正在运行的jquery,以使其禁用/启用。