【问题标题】:Codeigniter form validation - how to reject default valuesCodeigniter 表单验证 - 如何拒绝默认值
【发布时间】:2020-05-15 15:07:56
【问题描述】:

我有一个设置了默认值的表单,例如:

 <input type="text" id="mail" name="mail" value="<?php echo set_value('mail', 'jdoe@example.com'); ?>" />

我使用 Codeigniter 的 form_validation 类验证表单。对于这个字段:

$config = array(
        array(
            'field' =>  'user',
            'label' =>  'Naam',
            'rules' =>  'trim|required|valid_email'
        ));

这是我的问题。当用户保持该字段不变并提交它的默认值“jdoe@example.com”时,我想拒绝这个值。我知道我可以使用回调,但这意味着我必须为表单的每个字段编写回调。不好看!

我研究了验证规则。 'differs' 看起来很有希望,但它只检查一个字段是否与另一个字段不同。

现在在 Codeigniter 中处理默认值的最佳方法是什么?

【问题讨论】:

  • 问题是:为什么要一个默认值?还是你的意思是有一个占位符?
  • 如果你想设置一个默认值,这个值通常来自数据库,带有当前记录的数据,如果是新记录,则为空

标签: php validation codeigniter-3


【解决方案1】:

听起来您应该使用占位符而不是默认值。否则你的要求没有多大意义。

<input type="text" id="mail" name="mail" value="<?php echo set_value('mail'); ?>" placeholder="jdoe@example.com" />

否则,您可以尝试内置验证规则“in_list”,例如in_list[红、蓝、绿]

$config = array(
        array(
            'field' =>  'user',
            'label' =>  'Naam',
            'rules' =>  'trim|required|valid_email|in_list[jdoe@example.com]'
        ));

编辑:实际上你会想要与 in_list 规则相反的规则,我认为这需要一个回调,但你只需要为每个字段编写一个回调即可。

【讨论】:

  • 谢谢,占位符是我所追求的。
猜你喜欢
  • 2015-07-12
  • 1970-01-01
  • 2014-08-31
  • 2018-09-27
  • 1970-01-01
  • 2019-05-24
  • 1970-01-01
  • 1970-01-01
  • 2016-05-22
相关资源
最近更新 更多