【问题标题】:Yii framework creating and validating form input fieldsYii 框架创建和验证表单输入字段
【发布时间】:2013-05-10 10:06:49
【问题描述】:

我想在我的 Yii 项目中使用 HTML5 表单输入。

在 Yii 框架中,没有像 type='text' 这样创建 type ='email'type='tel' 输入字段的函数。 Yii 框架中有一个名为textField() 的创建文本字段的函数,但是一旦我搜索,它们只有tag() 函数来创建“email”和“tel”输入标签。我在我的代码中使用了该函数并创建了输入字段,但问题是我无法验证我的表单字段,因为它在 textField() 函数中做得很好。

这是我的代码:

echo CHtml::tag($tagName,
    array('id'=>'Contactus_email',
        'name'=>'Contactus['.$value['fieldname'].']',
        'class'=>'input_height',
        'type'=>'email',
        'placeholder'=>$value['placeholder']
    ), false, true);

【问题讨论】:

    标签: php validation yii


    【解决方案1】:

    由于没有 CHtml::activeTag() 方法,理论上它将您的输入绑定到 CActiveRecord 属性,我认为您无法使用内置框架类对该输入进行验证。

    但是,您可以create your ownCHtml 并添加一个方法MyHtml::activeEmailField(),这与CHtml::activeTextField() 基本相同,但将type=text 属性覆盖为type=email

    在服务器端级别,确保您在模型规则中使用CEmailValidator 以防止出现不希望的输入。

    【讨论】:

    • 谢谢..这个答案可以指导我找到我想要的解决方案。我认为在我们自己的类中覆盖 CHtml::activeTextField() 方法不需要在这里做。因为我们可以使用 CHtml::activeEmailField() 函数来代替它。去看看这个链接,这可能对你有帮助 www.yiiframework.com/doc/api/1.1/CHtml#activeEmailField-detail。
    • 太棒了!我不知道activeEmailField() :)
    【解决方案2】:

    同样,您必须在 Yii 中定义电子邮件和电话的验证规则,并需要将其附加到模型规则部分的 thease 字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-11
      • 2023-03-14
      • 2016-07-23
      • 1970-01-01
      • 2015-07-03
      • 2013-12-25
      • 2018-05-12
      • 2021-04-13
      相关资源
      最近更新 更多