这是我的控制器。所有字段都是必填字段,所有字段都是下拉列表。如果所有字段都为空(在任何下拉列表中未选择任何项目),则表单只会重新加载而不会出现错误。如果选择了任何一个或两个或三个,它会正确地报告未选择的那些是错误的,因为它们是空的。如果没有选择,它应该报告所有都是错误的,但它没有。
$baserules = 'trim|required';
$this->form_validation->set_rules('gender', 'Gender', $baserules . '|exact_length[1]');
$this->form_validation->set_rules('category', 'Category', $baserules . '|max_length[32]');
$this->form_validation->set_rules('state', 'State', $baserules . '|exact_length[2]');
$this->form_validation->set_rules('city', 'City', $baserules . '|max_length[32]');
if ($this->form_validation->run() === FALSE) {
$this->load->view('templates/header', $data);
$this->load->view('post/post', $data);
$this->load->view('templates/footer');
} else {
redirect('search');
}
我正在使用echo validation_errors();在视图中,它显示了同样的事情。表单为空时没有错误,但如果选择了四个中的一个,两个或三个,则更正错误。以下是观点:
<form action="http://example.com/index.php/post/post" method="post" accept-charset="utf-8" class="form-horizontal" id="postForm" name="postForm" role="form">
<div class="form-group col-lg-12">
<div class="centered">
Please select each of the following and click continue.
</div>
<div class="column-quarter">
<select style="width:100%;" id="gender" name="gender" >
<option value="" selected disabled>select gender</option>
<option value="f">Female</option>
<option value="m">Male</option>
</select>
</div>
<div class="column-quarter">
<select style="width:100%;" id="category" name="category" >
<option value="" selected disabled>select category</option>
<option value="cat1">cat1</option>
<option value="cat2">cat2</option>
</select>
</div>
<div class="column-quarter">
<select style="width:100%;" id="state" name="state" >
<option value="" selected disabled>select state</option>
<option value="tx">TX</option>
<option value="tx">OH</option>
<option value="tx">MI</option>
</select>
</div>
<div id="citydiv" class="column-quarter">
<select style="color: #999; width:100%;" id="city" name="city">
<option value="" disabled>select city</option>
<option value="city1">city1</option>
<option value="city2">city2</option>
<option value="city3">city3</option>
</select>
</div>
</div>
<div class="form-group col-lg-12 centered">
<button type="submit" class="btn btn-success">Continue</button>
<button type="reset" class="btn btn-success">Clear</button>
</div>
</form>
答案 0 :(得分:0)
从disabled
下拉列表中删除select
属性。
例如,应该从
更改性别下拉列表 <option value="" selected disabled>select gender</option>
到
<option value="" selected>select gender</option>
通过将其默认为禁用,您在提交表单时不会提交。请参阅W3Schools上的提示部分。