5

我有一个可以是十进制或数字的输入。我想使用这个规则:

$this->form_validation->set_rules('price', 'Price', 'decimal|numeric');

但我认为 form_validation 助手中的规则不适用于“或”语句。如果价格类似于“149.99”,则有效,但如果价格为“150”,则无效。

我是否遗漏了某些东西,或者是否可以使用类似的东西:

 $this->form_validation->set_rules('price', 'Price', 'decimal or numeric');
4

3 回答 3

5

CI,在验证时不允许混合数据类型。相反,创建您的自定义验证规则。

声明这样的规则

$this->form_validation->set_rules('price', 'Price', 'callback_decimal_numeric');

在控制器上创建方法后

    public function decimal_numeric($str)
    {
        if ($str <isdecimal&nummeric>) //Use your logic to check here
        {
            $this->form_validation->set_message('decimal_numeric', 'The %s field validation has failed');
            return FALSE;
        }
        else
        {
            return TRUE;
        }
    }
于 2012-04-22T11:48:05.823 回答
0

The decimal rule requires a parameter to be passed

http://codeigniter.com/user_guide/libraries/form_validation.html#rulereference

于 2012-04-22T11:29:04.890 回答
-1

使用 ( required|decimal ) 这个例子:
$this->form_validation->set_rules('lat', 'Latitude', 'required|decimal');

于 2015-06-16T06:06:47.747 回答