我是 Codeigniter 的新手,在选择框验证方面遇到了一些麻烦。我想要一开始的默认选择值。
<select name="schooGroups[]">
<option value="0">Select User Group</option>
<option value="1">Admin</option>
</select>
我怎样才能使它成为表单中的必填字段并在选择零“0”值时显示错误消息。
我是 Codeigniter 的新手,在选择框验证方面遇到了一些麻烦。我想要一开始的默认选择值。
<select name="schooGroups[]">
<option value="0">Select User Group</option>
<option value="1">Admin</option>
</select>
我怎样才能使它成为表单中的必填字段并在选择零“0”值时显示错误消息。
这会将条目标记为“已选择”,因为默认情况下已选择。你想要一个多选下拉菜单,对吧?
<select name="schoolGroups[]" multiple="multiple">
<option value="0" selected="selected">Select User Group</option>
<option value="1">Admin</option>
</select>
至于验证,您可能想要构建自己的验证规则:
您的控制器的方法:
//...
$this->form_validation->set_rules('schoolGroups','School groups','required|callback_check_default');
$this->form_validation->set_message('check_default', 'You need to select something other than the default');
//...
添加此其他方法:
function check_default($array)
{
foreach($array as $element)
{
if($element == '0')
{
return FALSE;
}
}
return TRUE;
}
如果您只想要一个选择(然后无法进行多选),那就更容易了:
html:
<select name="schoolGroups">
<option value="0" selected="selected">Select User Group</option>
<option value="1">Admin</option>
</select>
验证方法:
$this->form_validation->set_rules('schoolGroups','School groups','required|callback_check_default');
$this->form_validation->set_message('check_default', 'You need to select something other than the default');
打回来:
function check_default($post_string)
{
return $post_string == '0' ? FALSE : TRUE;
}
正确的做法是将默认选项的值设置为空!然后你可以使用一个简单的 form_validation 规则,比如一个文本字段:
<select name="schoolGroups">
<option value="">Select User Group</option>
<option value="1">Admin</option>
</select>
.
$this->form_validation->set_rules('schoolGroups','School groups','required');
这个对我有用。
风景
<select name="schoolGroups[]" multiple="multiple">
<option value="">Select User Group</option>
<option value="1">Admin</option>
</select>
控制器
$this->form_validation->set_rules('schoolGroups','School groups','callback_check_default');
打回来
function select_validate()
{
$choice = $this->input->post("schoolGroups");
if(is_null($choice))
{
$choice = array();
}
$schoolGroups = implode(',', $choice);
if($schoolGroups != '') {
return true;
} else {
$this->form_validation->set_message('select_validate', 'You need to select a least one element');
return false;
}
}