Codeigniter 表单验证 - 如何拒绝默认值

Codeigniter form validation - how to reject default values

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

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

我使用 Codeigniter 的 form_validation class 验证表单。对于此字段:

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

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

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

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

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

<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 规则的反面,我认为这需要一个回调,但你只需要为每个字段编写一个回调。