我想要一个带有三个按钮的表格:
我知道如何实现“确定”和“取消”按钮,但是如何防止单击“保存草稿”按钮时进行验证?
答案 0 :(得分:1)
要绕过仅用于草稿按钮的客户端验证,我建议不要对草稿使用提交按钮,使用普通按钮并使用ajax调用保存草稿,这如果您在字段中输入或模糊显示,则会触发验证,但如果您单击草稿按钮,则不会触发验证。使用$.serialize()
获取表单输入并发送调用以另存为草稿。
答案 1 :(得分:0)
希望这对某人有帮助。 解决方法如下:
在视图中将“草稿按钮”添加为普通按钮:
<?= Html::button('Save Draft', ['class' => 'btn btn-default btn-block', 'id' => 'save-draft-btn']) ?>
将JS文件添加到视图中,并为按钮指定onClick事件:
$('#save-draft-btn').on('click', function (e) {
$.ajax({
type: 'POST',
url: draftUrl,
data: $('#report-index').serialize()
});
});
将操作添加到您的控制器:
public function actionSaveDraft($idSupply)
{
//load models like this
$report = \app\models\Reports::findOne($idSupply);
//fill with the POST data
$report->load(Yii::$app->request->post());
//save without validation
$report->save(false);
//inform the user on success saving
Yii::$app->session->setFlash('success', 'Draft Saved');
//redirect to the editing page
return $this->redirect(['index', 'idSupply' => $report->id_supply]);
}