Функция bind_select_element()

Версии: 3.0.0+

Описание

bind_select_element(p_parent, p_child, p_child_field_name)

Привязывает select элемент к родительскому элементу (select или lookup). При смене значеня в родительском элементе, в дочернем элементе проводится фильтрация значений. При фильтрации используются атрибуты тега option дочернего элемента, поэтому для привязки у дочернего элемента, в его xml описании, нужно добавить вывод дополнительного поля при помощи тега db_field_ext

.

Параметры

  • p_parent — id родительского элемента или сам элемент.

  • p_child — id дочернего элемента или сам элемент.

  • p_child_field_name — Название поля(атрибута тега option), по которому будет происходить фильтрация в дочернем элементе. Фильтрация проходит в формате: p_child.options[*].getAttribute(p_child_field_name) = значение родительского элемента.

Результат

При смене значения в родительском поле, в дочернем автоматически производится фильтрация значений.

Пример

<EDITCARD .... >
<ELEMENTS>
...
  <FIELD elem_type="select" caption="Результат" db_field="TaskResultID"
      mandatory="no" datatype="id" row_type="fk_column"
      row_type_parent_table="iris_TaskResult" row_type_parent_display_column="Name"
      db_field_ext="TaskTypeID"/>
...
</ELEMENTS>
</EDITCARD>
 
//********************************************************************
// Скрипт карточки раздела "Задачи"
//********************************************************************
 
var c_Task_ScriptFileName = '/config/sections/Task/c_task.php';
 
 
//Инициализация карточки
function c_task_init(p_wnd_id) {
 
	//Находим форму карточки
	var l_form = $(p_wnd_id).getElementsByTagName("form")[0];
 
	...
 
	bind_select_element(l_form.TaskTypeID, l_form.TaskResultID, 'TaskTypeID');
 
	...
}
В этом примере привязка настраивается таким образом, что при изменении типа дела, в поле "результат" отображаются только результаты, относящиеся к данному типу дел.

Навигация