我有一个包含一些禁用字段的表单,当提交表单时,$ this-> request->数据和$ _POST为空,删除已禁用的字段,它再次没问题。虽然它仍然可以通过非禁用字段。我甚至尝试在按下提交按钮时删除禁用的字段属性,但这仍然返回一个空数组。
是否有与蛋糕有关的东西可能导致这种情况?
由于
//来自查看代码的SNIPP:
$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();
});
});
答案 0 :(得分:0)
这就是HTML的工作方式,禁用不会发布。 CakePHP无法更改从浏览器发送的内容。如果您仍想要该值,可以将其设置为隐藏元素。
我看到的一些问题:
Form::end()
(总是good idea要插入它)。CardModifysaleForm
提交表单。您提供的视图代码中没有此类ID,并且您没有从您提供的代码段中将表单设置为该ID。答案 1 :(得分:0)
我最终从此处删除了禁用选项,仅保留就绪并添加了一些额外的CSS样式,因此它看起来对用户不起作用。这不是问题的确切答案,而是作为一种不同的方法。