Codeigniter set_select不适用于表单验证

时间:2019-01-21 01:22:44

标签: jquery codeigniter

我正在使用codeigniter表单验证来验证选择选项是否具有值。 我在将所选选项的值传递到控制器时遇到问题,因此我创建了一个隐藏的输入并使用jquery将值on_change传递给了我。 Set select可以重新填充select选项,但是不会将值传递给我的隐藏输入。我是新手,不确定最好的路线是什么?表单验证失败后,是否有办法将值从我的选择选项重新传递给隐藏的输入?

这是我的观点:

$('#transfer_from_selector').on('change', function () {
var val = this.value;
$('#transfer_from_input').val(this.value);
});   

<select class="form-control" id="transfer_from_selector" name="transfer_from_selector">
                    <option value="" disabled="" selected="selected" class="">Transfer From</option>
                    <option value="1" <?php echo set_select('transfer_from_selector', 1); ?>class="">Richfield</option>
                    <option value="2" <?php echo set_select('transfer_from_selector', 2); ?>class="">Eagan</option>
</select>  

<input type="hidden" id="transfer_from_input" name="transfer_from_input" value=""> 

这是我的控制人:

$this->form_validation->set_rules('transfer_from_input', 'Transfer From', 'required|differs[transfer_to_input]');
$data = array(
    'transfer_from' => $this->input->post('transfer_from_input'),
);

2 个答案:

答案 0 :(得分:1)

无需编写隐藏字段。请使用带有名称的aaray作为选择选项。尝试此操作,希望对您有所帮助。

<select class="form-control" id="transfer_from_selector" name="transfer_from_selector[]">
                    <option value="" disabled="" selected="selected" class="">Transfer From</option>
                    <option value="1" <?php echo set_select('transfer_from_selector', 1); ?>class="">Richfield</option>
                    <option value="2" <?php echo set_select('transfer_from_selector', 2); ?>class="">Eagan</option>
</select> 

答案 1 :(得分:0)

我知道了,由于某种原因,我分配了一个ID而不是一个名称,因此它没有正确传递值。无需将名称命名为数组。我删除了jQuery代码,只是将选择值传递给了我的控制器。