【问题标题】:Yii2 - AJAX validation without $form->field()Yii2 - 没有 $form->field() 的 AJAX 验证
【发布时间】:2020-09-23 08:27:23
【问题描述】:

我有一个表单,但是输入字段没有绑定到它,所以我必须使用Html::textInput('ALG['.$x++.'][pcs]', $models->pcs) 而不是Html::textInput('ALG['.$x++.'][pcs]', $models->pcs),因为它就像一个表单中的多个相同类型的模型,但输入字段是在网格视图中以获得更好的概览,而不是 Yii 方式:collecting tabular input(当你有几百个模型时,它会令人困惑)。是否可以对这些 非形式 Html::textInput() 输入使用 AJAX 验证?

【问题讨论】:

    标签: validation yii


    【解决方案1】:

    为什么不使用$form->field()?如果因为复杂的输入名称,您可以覆盖默认值并通过将名称选项传递给输入来设置您的名称,方法与为它分配类的方式相同。

    注意:这仅适用于您使用 ActiveRecord。

    【讨论】:

    • 感谢您的评论,我已更新问题以便更好地理解。
    • 如果你组织得当,是的,你可以并且不离开模型的行为。您可以使用 Active Record 和规则。检查表格输入,您会找到方法。如果没有,您需要自己创建验证,因为据我所知,在客户端管理您的表单的 ActiveForm 在服务器端假设一个模型。
    【解决方案2】:

    试试这样的:

    <?= Html::activeLabel($model, '['.$x++.'][pcs]'); ?>
    
    <?= Html::activeTextInput($model, '['.$x++.'][pcs]'); ?>
    
    <?= Html::error($model, '['.$x++.'][pcs]'); ?>
    

    其中$model 是 ALG 模型的对象。

    【讨论】:

      猜你喜欢
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      相关资源
      最近更新 更多