簡體   English   中英

在Codeigniter中,如何驗證單選按鈕(未選中)?

[英]In Codeigniter, how to validate radio buttons (without “checked”)?

在Codeigniter中,我想驗證單選按鈕,但是當用戶加載頁面時,我不想選擇一個(我的意思是沒有“ checked”屬性 )。

到目前為止,這是我所做的...

我的查看文件:

<?=validation_errors()?>
<form action="step1" method="post">
    <input name="food" type="radio" value="1" <?=set_radio('food', '1')?> />
    <input name="food" type="radio" value="2" <?=set_radio('food', '2')?> />
    <input name="food" type="radio" value="3" <?=set_radio('food', '3')?> />
</form>

我的控制器文件:

$this->form_validation->set_rules('food', 'food', 'required');
if ($this->form_validation->run() == TRUE) redirect('step2');

僅當我添加<input type="text">的字段時,才會出現錯誤消息。 但是我希望只有3個單選按鈕和一個錯誤消息(如果未選擇)。

你知道怎么做嗎?

由於CodeIgniter 2錯誤,“當表單僅包含單選按鈕時, 所需的 驗證規則不會返回錯誤消息”。 在此處查看詳細信息-https: //github.com/EllisLab/CodeIgniter/issues/138

我通過添加隱藏字段來解決它,例如<input type="hidden" value="true" name="fix_radio_required">

這種方法對我們來說效果很好。

<?php
$member_type = 1;
    if(isset($_POST['member_type'])){ 
        $member_type = $_POST['member_type'];
    }
    echo form_radio("member_type", 1, $member_type == 1 ? TRUE : FALSE,' id="member_type" class="form-control"');

    echo form_radio("member_type", 2, $member_type == 2 ? TRUE : FALSE,' id="member_type" class="form-control"');
?>

為了擴展Andriy編寫的內容,我們將使用提交的單選按鈕的值,然后執行TRUE或FALSE來設置檢查的值。

您是否嘗試過檢查ON狀態?

if($this->input->post('food') === 'on')

查看文件

<?php echo form_error('gender')?>
<form name="frm" method="post">
<input type="radio" value="m" name="gender" /> Male <br />
<input type="radio" value="f" name="gender" /> Female <br />
<input type="radio" value="o" name="gender" /> Other
<input type="submit" value="submit" name="btn" />
</form>

調節器

public function index()
{

    $this->form_validation->set_rules('field' => 'gender', 'label' => 'Gender', 'rules' => 'required');

    if($this->form_validation->run()==TRUE)
    {
        echo "hello wordl"; exit;
    }
    //Your view loading script..
}

使用表單驗證庫,您可以通過以下方式實現:

調節器

$this->form_validation->set_error_delimiters('', '<br>');
$this->form_validation->set_rules('type', '<b>Type</b>', 'trim|required|maxlength[1]|xss_clean');


視圖

<label for="type_1">Is this type one, two or three? <b style="color: red">*</b></label></td>

<input type="radio" name="type" id="type_1"<?php echo set_radio('type', '1'); ?> value="1"><label for="type_1">One</label> &nbsp;
<input type="radio" name="type" id="type_2"<?php echo set_radio('type', '2'); ?> value="2"><label for="type_2">Two</label>
<input type="radio" name="type" id="type_3"<?php echo set_radio('type', '3'); ?> value="3"><label for="type_3">Three</label>
<span style="color: red; font-weight: bold"><?php echo form_error('type'); ?><?php echo isset($errors['type']) ? $errors['type'] : '' ?></span>

使用表單驗證

控制器:

    $this->load->library('form_validation');

    $this->form_validation->set_rules('food', 'Radio button', 'required');

    if ($this->form_validation->run() == FALSE)
    {
        $this->form_validation->set_message('required', 'Error message');
    }

在這里,您可以為單選按鈕設置規則:

$this->form_validation->set_rules('food', 'Radio button', 'required');

“食物”是指您的單選按鈕的名稱。

“單選按鈕”-此字段的“人為”名稱

'required'-此表單字段的驗證規則

使用$ this-> form_validation-> run(),您可以運行表單驗證庫arnd來檢查表單是否通過(TRUE / FALSE)。

視圖:

<?=validation_errors()?>
    <form method="post">
        <input type="radio" name="food" value="1">
        <input type="radio" name="food" value="2">
        <input type="radio" name="food" value="3">

        <input type="submit" name="submit" value="submit">
    </form>

這是帶有3個單選按鈕的表格,其名稱與控制器中使用的名稱相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM