【问题标题】:Yii2: How to detect ActiveForm validation on submitYii2:如何在提交时检测 ActiveForm 验证
【发布时间】:2017-05-30 10:17:12
【问题描述】:

我们有一个包含“小时”和“天”字段的表单。必须指定小时或天,但不能同时指定。我们正在使用模式表单、Ajax 和自定义验证规则,并且一切正常,以确保在完成表单时指定一个或另一个有效。但是,检查至少一个或另一个的时间是在提交表单时指定的。

问题是如何区分逐个字段执行的“正常”验证和提交时执行的验证。有没有办法检测何时提交表单 (validateOnSubmit),而不是在输入表单数据时何时发布表单数据以进行验证 (validateOnChange)?

这可以在最终模型验证时进行检查,但此时它是一个标准请求,因此表单会正常呈现,而不是更新模态表单。

【问题讨论】:

    标签: ajax validation yii2 active-form


    【解决方案1】:

    我找到了答案:有条件的要求规则:

    [['days'], 'required', 'message' => 'Days or Hours?', 
               'when' => function($model) { return is_null($model->hours );},
               'whenClient' => "function (attribute, value){ return $('#downtime-hours').val() == '';}",
            ],
    [['hours'], 'required', 'message' => 'Hours or Days?', 
                'when' => function($model) { return is_null($model->days); },
                'whenClient' => "function (attribute, value){ return $('#downtime-days').val() == '';}",
            ],
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多