为什么`set_radio`在包含“form_validation”时不起作用?

时间:2013-05-10 00:43:42

标签: php forms codeigniter validation

我正在调用视图

function index() {
    $this->load->helper("form");
    $this->load->library("form_validation");

    $this->load->view("index");
}

然后我有

<?php echo form_open(); ?>

<input type="radio" name="radioname" value="x" <?php echo set_radio("radioname", "x", true); ?> />
<input type="radio" name="radioname" value="y" <?php echo set_radio("radioname", "y"); ?> />

</form>

在第一次加载时,我检查了第一个收音机。如果我发布表单,则值会成功转到$this->input->post()。但没有一个收音机盒被检查。如果我没有加载验证,则代码可以正常工作。

我挖了代码,发现如果加载form_validation,它的行为会有所不同。

$OBJ =& _get_validation_object();

if ($OBJ === FALSE)
{
    // returns formhelper set_radio
}

// this doesn't make sense for me
return $OBJ->set_radio($field, $value, $default);

如果form_validation已加载,则会从set_radio执行$OBJ,但不起作用。

在这种情况下,$OBJ究竟是什么?我需要做些什么才能让它发挥作用?

1 个答案:

答案 0 :(得分:4)

您需要将假规则添加到radioname,例如

$this->form_validation->set_rules("radioname", "", "trim");