根据提交按钮启用或禁用表单验证

问题描述 投票:0回答:3

我实际上在CakePHP 2.x中这样做。

<?php echo $this->Form->create('Product', array('url' => array('controller' => 'products', 'action' => 'add'), 'id' => 'form-add')); ?>

<?php echo $this->Form->input("title", array("div" => false, "label" => false, 'class' => 'form-control', 'required'=>true)); ?>

<?php  echo ($this->Form->input('description', array('type' => 'textarea', 'rows' => '6','div'=>false, 'label'=>false, 'placeholder'=>__('Description...'), "class" => "form-control Description", 'required'=>true)));?>

<button class="btn" type="submit" id="submitSaveDraft">Save Draft</button>

<button class="btn" type="submit" id="submitSave">Save</button>

<?php echo $this->Form->end(); ?>

我有一个包含一些字段和两个提交按钮的表单。一个提交按钮是“保存草稿”,另一个只是标准的“保存”。

1)如果单击“保存”按钮,页面将验证表单上的所有输入,即,如果未填写必填字段,将提示消息,并且表单将不提交。

2)现在,我要实现的是:单击“保存草稿”按钮时,我希望页面忽略所有必填字段(“标题”字段除外),然后继续提交表单。这是因为我们仅保存草稿,所以除了“标题”以外的所有字段都不是必需的。

如何获得数字(2),并保存上面的草稿功能?

谢谢。

javascript php cakephp cakephp-2.0
3个回答
0
投票

绕过验证。

$this->model->save($data, ['validate' => false]));

0
投票

只需删除“保存草稿按钮”的提交类型


0
投票

[首先,我建议将对Product模型的默认验证限制为仅标题。这样一来,草稿表单即可提交,而不会自动添加HTML5验证。验证的其余部分可以设置为其他Product模型类var,稍后将使用它,例如$save_validation

[下一步,使用JS表单提交处理程序,将提交类型(例如,保存或保存草稿)发送到控制器,可能带有隐藏的输入,该输入在单击按钮时会更改。

在处理发布数据的控制器代码中,您可以检查您所处的情况,对于submitSave情况,通过合并$validate$validate来设置模型的$save_validation数组(保存之前当然)。现在,您拥有完整的验证集,并且仅在需要时应用。

© www.soinside.com 2019 - 2024. All rights reserved.