首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据提交按钮启用或禁用表单验证

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

Stack Overflow用户
提问于 2019-11-14 18:00:14
回答 3查看 466关注 0票数 0

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

代码语言:javascript
复制
<?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)现在,我想要实现的是:当单击"Save Draft“按钮时,我希望页面忽略所有必填字段(标题字段除外),并继续表单提交。这是因为我们只保存草稿,所以除了标题之外的所有字段都不是必填项。

我如何实现上面的数字(2),保存草稿功能?

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2019-11-15 07:46:16

首先,我建议将Product模型上的默认验证限制为仅title。这将允许提交草稿表单,而不会妨碍自动添加的HTML5验证。验证的其余部分可以设置为稍后将使用的不同的Product model类var,比如$save_validation。

接下来,使用JS表单提交处理程序将提交类型(例如Save或Save Draft)发送到控制器,可能带有一个隐藏的输入,该输入在单击按钮时会发生更改。

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

票数 0
EN

Stack Overflow用户

发布于 2019-11-15 15:38:30

绕过验证。

代码语言:javascript
复制
$this->model->save($data, ['validate' => false]));
票数 0
EN

Stack Overflow用户

发布于 2019-11-15 17:43:01

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58853997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档