Я расширил библиотеку form_validation с помощью простой функции, которая гарантирует, что в раскрывающемся списке не выбрано значение по умолчанию.Надеюсь это поможет.
приложение / библиотеки / MY_Form_validation.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed.');
class MY_Form_validation extends CI_Form_validation {
function __construct()
{
parent::__construct();
$this->CI->lang->load('MY_form_validation');
}
/**
* Make sure a drop down field doesn't have its default value selected.
*
* @access public
* @param string
* @param field
* @return bool
* @author zechdc
*/
function require_dropdown($str, $string_to_compare)
{
return ($str == $string_to_compare) ? FALSE : TRUE;
}
}
приложение / язык / английский / MY_Form_validation_lang.php
$lang['require_dropdown'] = 'The %s field must have an item selected.';
Как использовать:
1) Создайте форму в выпадающем списке:
<select name="business_id">
<option value="select">Select Business</option> More options...
</select>
2) Создайте правило проверки.Возможно, вы сможете установить значение 0 и использовать require_dropdown [0], но я никогда не пробовал этого.
$this->form_validation->set_rules('business_id', 'Business', 'require_dropdown[select]');
3) Установите свое собственное сообщение: (Или пропустите этот шаг и используйте тот вязыковой файл.)
$this->form_validation->set_message('business_id', 'You must select a business');