02.06.2008, 15:52 | #1 |
Участник
|
передача параметров функции
Здравствуйте,есть такой вопрос.
На форме есть checkbox, по выбору которого становятся видимыми несколько полей. Хочу сделать в onload универсальную функцию, которую можно будет вызывать в onChange любого checkbox'a, указав нужные поля. Код в onload: X++: checkboxes=function(checkboxfield,field1_c,field1_d,field2_c,field2_d) { var hideValues = (checkboxfield); var displayStyle = hideValues ? 'none' : 'inline'; //спрятать lable и field field1_c = displayStyle ;//hides the label field1_d = displayStyle ;//hides the field //спрятать lable и field field2_c = displayStyle ;//hides the label field2_d = displayStyle ;//hides the field } X++: checkboxes(crmForm.all.new_checkbox.DataValue, crmForm.all.new_field1_c.style.display, crmForm.all.new_field1_d.style.display, crmForm.all.new_field2_c.style.display, crmForm.all.new_field2_d.style.display); Проблема такая-ошибки не выдается,но при этом ничего и не происходит. Как правильно решить такую проблему? |
|
02.06.2008, 17:01 | #2 |
CRM
|
Такое будет работать только на той форме где Вы в onload определили ф-ю.
Для появление ошибки Вам стоит разрешить дебаг в ИЕ. См. настройки браузера. Я бы функцию наоборот определил: function checkboxes(checkboxfield,field1_c,field1_d,field2_c,field2_d) Что-то смысл Вашей функции мне не ясен. Версия CRM не указана, поэтому буду считать, что без разницы Я бы написал что-то вроде X++: function HideOrShow(field, action) { var displayStyle = action ? 'none' : 'inline'; var o_c = document.getElementById(field + "_c"); if (o_c) o_c.style.display = displayStyle; var o_d = document.getElementById(field + "_d"); if (o_d) o_d.style.display = displayStyle; } X++: HideOrShow("new_field1", crmForm.all.new_checkbox.DataValue); HideOrShow("new_field2", crmForm.all.new_checkbox.DataValue);
__________________
MS CRM 3.0/4.0 Sharepoint 2003, MOSS 2007/2010 |
|
|
За это сообщение автора поблагодарили: Matvei (1). |
03.06.2008, 13:47 | #3 |
Участник
|
Спасибо большое, разобрался и все сделал
Только вот не пойму что за проблема с фокусом checkbox'a. При включении его,приходится щелкнуть еще на форме,чтобы сработало OnChange. |
|
03.06.2008, 17:13 | #4 |
Moderator
|
Это у всех полей так. OnChange срабатывает только когда вы закончили редактирование - сменили фокус.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
04.06.2008, 07:10 | #5 |
CRM
|
onclick какой-нибудь надо. Надо доки по DOM смотреть.
__________________
MS CRM 3.0/4.0 Sharepoint 2003, MOSS 2007/2010 |
|
04.06.2008, 08:35 | #6 |
Участник
|
Цитата:
Для появление ошибки Вам стоит разрешить дебаг в ИЕ. См. настройки браузера.
|
|
04.06.2008, 08:58 | #7 |
CRM
|
Сервис-Свойства обозревателя-Дополнительно-Обзор и снять галочки с "Отключит отладку сценариев..."
__________________
MS CRM 3.0/4.0 Sharepoint 2003, MOSS 2007/2010 |
|