81
83
$this->value = $value;
83
function AddItem($value, $caption, $selected=NULL, $enabled='yes')
85
function AddItem($value, $caption='', $selected=NULL, $enabled='yes')
85
87
// if($enabled=='no') return; /* disable item method 1 */
98
100
class CListBox extends CComboBox
101
function CListBox($name='combobox',$value=NULL,$size=5,$action=NULL)
103
function CListBox($name='listbox',$value=NULL,$size=5,$action=NULL)
103
105
parent::CComboBox($name,NULL,$action);
104
106
$this->options['multiple'] = 'multiple';
116
function inseret_javascript_for_editable_combobox()
118
if(defined('EDITABLE_COMBOBOX_SCRIPT_INSERTTED')) return;
120
define('EDITABLE_COMBOBOX_SCRIPT_INSERTTED', 1);
122
<script language="JavaScript" type="text/javascript">
124
function CEditableComboBoxInit(obj)
126
var opt = obj.options;
128
if(obj.value) obj.oldValue = obj.value;
130
for (var i = 0; i < opt.length; i++)
131
if (-1 == opt.item(i).value)
134
opt = document.createElement("option");
136
opt.text = "(other ...)";
139
obj.insertBefore(opt, obj.options.item(0));
141
obj.options.add(opt, 0);
146
function CEditableComboBoxOnChange(obj,size)
150
obj.oldValue = obj.value;
154
var new_obj = document.createElement("input");
155
new_obj.type = "text";
156
new_obj.name = obj.name;
161
new_obj.className = obj.className;
162
if(obj.oldValue) new_obj.value = obj.oldValue;
163
obj.parentNode.replaceChild(new_obj, obj);
173
class CEditableComboBox extends CComboBox
175
function CEditableComboBox($name='editablecombobox',$value=NULL,$size=0,$action=NULL)
177
inseret_javascript_for_editable_combobox();
179
parent::CComboBox($name,$value,$action);
180
parent::AddAction('onfocus','CEditableComboBoxInit(this);');
181
parent::AddAction('onchange','CEditableComboBoxOnChange(this,'.$size.');');
184
function AddItem($value, $caption='', $selected=NULL, $enabled='yes')
186
if(is_null($selected))
188
if($value == $this->value || (is_array($this->value) && in_array($value, $this->value)))
189
$this->value_exist = 1;
192
parent::AddItem($value,$caption,$selected,$enabled);
195
function ToString($destroy=true)
197
if(!isset($this->value_exist) && !empty($this->value))
199
$this->AddItem($this->value, $this->value, 'yes');
201
return parent::ToString($destroy);