SPUtility.js problems resolve 2 (Sharepoint)

Решаем еще 2 проблемы скрипта SPUtility

1) MakeReadOnly метод для многострочного поля не работает корректно.

var richtext=SPUtility.GetSPField('Многострочный текст'); 
	if(richtext!=null)
	{
		richtext.MakeReadOnly();		
	}

Результат:

Решение:

MakeRichTextBoxReadOnly :function(SPField){
					var div = document.createElement('div');
						div.className="div_class";
					div.innerHTML = SPField.Textbox.value;
					SPField.Controls.parentNode.insertBefore(div, SPField.Controls.parentNode.firstChild); 
					SPField.MakeReadOnly();
					var cell=SPField.LabelRow.cells[1];
					var docTags = cell.getElementsByTagName('div');  
							  for (var i=0; i < docTags.length; i++) {  
								  if (docTags[i].className == 'sputility-readonly') {  
									  docTags[i].style.display = 'none';  
								  }  
							  } 
					
			}

Использование:

var richtext=SPUtility.GetSPField('Многострочный текст'); 
	if(richtext!=null)
	{
		//richtext.MakeReadOnly();
		mgfUtils.SPUtility.MakeRichTextBoxReadOnly(richtext); 
	}

Наш результат:

 

2) Следующая проблема. Не верно устанавливается значение для поля подстановки где элементов больше 25

var lookup=SPUtility.GetSPField('Подстановка');
	if(lookup!=null)
	{
		lookup.SetValue('5');		
	}

Результат:

на первый взгляд вроде значение установилось, на нажав "сохранить", получаем ошибку (если поле было обязательным). При разборе проблемы понимаю что значение установилось только в input поле, а еще есть скрытое поле откуда sharepoint забирает выбранное значение.

SetLookupFieldValue : function(SPField, value)
			{			
				SPField.SetValue(value);	
				lookupFieldText = mgfUtils.GetFieldByTagAndTitle('input',SPField.Name);  
        		lookupFieldId = document.getElementById(lookupFieldText.optHid);  
        		if(lookupFieldId !=null)
        		{
        			lookupFieldId.value=value;
				}
			},

Использование:

var lookup=SPUtility.GetSPField('Подстановка');
	if(lookup!=null)
	{
		//lookup.SetValue('5');
		mgfUtils.SPUtility.SetLookupFieldValue(lookup,5); 
	}

Результат: значение верно устанавливается и форма сохраняется.

Добавить комментарий

Loading