none
SPS2013: получить значение поля типа "Пользователь или группа" RRS feed

  • Вопрос

  • Доброе время суток.

    Есть SPS2013, сразу напишу в DispForm - все работает ок, а проблема только в EditForm.

    На странице EditForm.aspx добавил веб-чать "Редактор сценариев", в теле добавляю код:

    <script>$(window).load(function () {... тут добавляю код ...});</script>

    Код пробую разные варианты:

    1) alert(SPUtility.GetSPField('Ответственный').GetValue());

    возвращает: [object Object]

    2) 

    var d2 = $('h3:contains("Ответственный")').closest('td').next('td').text();
    d2 = jQuery.trim(d2);
    alert(d2);

    возвращает: Введите имя или адрес электронной почты...Иванов Иван Иванович

    Уже лучше, но откуда-то взялся лишний текст: "Введите имя или адрес электронной почты..."

    По F12 на EditForm.aspx увидел дополнительный системный span, внутри td, который содержит этот текст, но мне нужно получить именно  Иванов Иван Иванович

    3) $("input[Title='Ответственный']").val('Title');

    возвращает: [object Object]

    Подскажите, как во втором варианте отделить систеный текст, от ФИО или может вообще другой способ получения имени пользователя?


    • Изменено Legioner 14 июля 2016 г. 6:17
    14 июля 2016 г. 6:01

Ответы

Все ответы

  • Добрый день,

    Во втором примере у вас ошибка парсинга...

    пробуйте через JSOM получить:

    var pickerDiv = document.getElementById("<ID of people picker element>");      
        var peoplePicker = SPClientPeoplePicker.SPClientPeoplePickerDict[pickerDiv.id];
        var theUser = peoplePicker.GetAllUserInfo();
        var theUserId = theUser[0].EntityData.SPUserID;
        alert("SP User ID: " + theUserId);

    14 июля 2016 г. 6:16
  • Добрый день,

    Во втором примере у вас ошибка парсинга...

    пробуйте через JSOM получить:

    var pickerDiv = document.getElementById("<ID of people picker element>");      
        var peoplePicker = SPClientPeoplePicker.SPClientPeoplePickerDict[pickerDiv.id];
        var theUser = peoplePicker.GetAllUserInfo();
        var theUserId = theUser[0].EntityData.SPUserID;
        alert("SP User ID: " + theUserId);

    Спасибо большое за ответ, но с <ID of people picker element> реально проблема - его или нет, а получить его отдельная большая задача 
    • Изменено Legioner 14 июля 2016 г. 6:39
    14 июля 2016 г. 6:36
  • Добрый день

    пробовали получить значение спустя время после загрузки страницы?

    попробуйте 

    setTimeout(function () {
    // код
    }, 600)


    мой блог Немного о SharePoint

    14 июля 2016 г. 6:43
    Модератор
  • Добрый день

    пробовали получить значение спустя время после загрузки страницы?

    попробуйте 

    setTimeout(function () {
    // код
    }, 600)


    мой блог Немного о SharePoint

    Спасибо, уже не обязательно, т.к. решено.

    Мне помогло такое решение: $('h3:contains("Ответственный")').closest('td').next('td').find('.ms-entity-resolved').text();

    14 июля 2016 г. 7:40