codeigniter 为form_radio()设置表单验证规则

eoigrqb6  于 2022-12-07  发布在  其他
关注(0)|答案(4)|浏览(149)

你好,我想在codeigniter中将form_radio()设置为强制字段,有什么想法吗?
这是我表格:

echo form_radio('radio','earing',FALSE)."earings";
           echo form_radio('radio','bag',FALSE)."bag";
           echo form_radio('radio','bracelet',FALSE)."bracelet";
           echo form_close();

当然每次只需要提交其中一个...
提前感谢!

zy1mlcev

zy1mlcev1#

您需要为表单的提交事件添加验证。请参阅以下示例:

<form action="page.php" method="post" onsubmit="return isValid(this);">
    <fieldset>
        <legend>Radio Buttons</legend>

        <input type="radio" value="1" name="myRadio" />Selection 1<br />
        <input type="radio" value="2" name="myRadio" />Selection 2<br />
        <input type="radio" value="3" name="myRadio" />Selection 3<br />
    </fieldset>

    <input type="submit" name="submitit" value="Submit" />
    <input type="reset" name="reset" value="Clear" />
</form>

<script type="text/javascript">

    function isValid(frm) {
        //  Initialize return value
        var isChecked = false;

        //  Check if radio was selected
        for (var i=frm.myRadio.length-1; i > -1; i--) {
            if (frm.myRadio[i].checked) {
                isChecked = true;
                break;
            }
        }

        if (isChecked == false) {
            alert("You must select a radio button");
            //  Data is invlaid,
            return false;
        }

        //  Everything is ok, continue with form submit
        return true;
    }
</script>
zpgglvta

zpgglvta2#

一种避免验证单选按钮的方法是在默认情况下选中一个单选按钮。这样,您甚至不必担心用户是否没有选中单选按钮,因为一旦选中了一个单选按钮,就会始终有一个单选按钮被选中。
这并没有回答关于如何在CodeIgnitor中验证表单的具体问题(不幸的是,我不知道这个问题的答案),但它可能会证明对您实现总体目标是有用的。

yquaqz18

yquaqz183#

如果你想使用验证,你的代码需要提交给控制器。

class Form extends Controller {

    function index()
    {
        $this->load->helper(array('form', 'url'));
        $this->load->library('form_validation');

        $this->form_validation->set_rules('radio', 'Product', 'required');

        if ($this->form_validation->run() == FALSE)
        {
            $this->load->view('myform');
        }
        else
        {
            $this->load->view('formsuccess');
        }
    }
}

你并不真的需要验证RADIO。当你生成单选按钮时,选中一个,它就会一直有值。
尝试这样做,这应该更好地工作。它将生成单选框与第一个复选框默认情况下,如果值为无线电没有设置:

echo form_radio('radio','earing', set_radio('radio', 'earing', TRUE))."earings";
echo form_radio('radio','bag', set_radio('radio', 'bag'))."bag";
echo form_radio('radio','bracelet', set_radio('radio', 'bracelet'))."bracelet";
echo form_close();
gijlo24d

gijlo24d4#

到目前为止,我解决这个问题的方法(对我来说似乎还可以)......是在我的控制器中使用一个简单的if语句,如下所示:

if($this->input->post('upload') && $this->input->post('radio')){
             $this->Gallery_model->do_upload();
          }

但我想知道是否有更合适的方法使用表单验证类,所以我不会将其标记为答案...

相关问题