none
Как сделать PeoplePicker недоступным (disabled)? RRS feed

  • Вопрос

  • Обычно для того, чтобы сделать поле на форме недоступным использую JavaScript:

    $(document).ready(function() {
       $("[id^='Title']").prop('disabled',true);
    });

    Но если поле имеет тип PeoplePicker, то такая конструкция не срабатывает.

    В следующем примере поле Title дизейблится, а поле Author0 - нет.

    $(document).ready(function() {
       $("[id^='Author0']").prop('disabled',true);
       $("[id^='Title']").prop('disabled',true);
    });
    P.S. Sharepoint 2013.


    • Изменено KruS-68 17 марта 2016 г. 7:04
    17 марта 2016 г. 6:40

Ответы

Все ответы

  • Обычно для того, чтобы сделать поле на форме недоступным использую JavaScript:

    $(document).ready(function() {
       $("[id^='Title']").prop('disabled',true);
    });

    Но если поле имеет тип PeoplePicker, то такая конструкция не срабатывает.

    В следующем примере поле Title дизейблится, а поле Author0 - нет.

    $(document).ready(function() {
       $("[id^='Author0']").prop('disabled',true);
       $("[id^='Title']").prop('disabled',true);
    });
    P.S. Sharepoint 2013.


    Воспользуйтесь этой статьей :))
    17 марта 2016 г. 7:10
  • Добрый день

    jQuery("[id^='Initiator']").attr("disabled", "disabled");
    // скрываем крестик удаления выбранного пользователя
    jQuery("[id^='Initiator'] a.sp-peoplepicker-delImage").hide();	


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

    17 марта 2016 г. 7:39
    Модератор
  • Да, я видел эту статью.

    Но мне показалось, что слишком сложно.

    В итоге разобрался.

    Используется всего 2 строчки:

    $("input.sp-peoplepicker-editorInput[title=controlName]").prop('disabled', true); //disable input textbox
    $(".sp-peoplepicker-delImage").hide(); //hide the 'x' after the link
    Где в качестве controlName указываем отображаемое имя столбца в одинарных кавычках - 'Author'.

    17 марта 2016 г. 7:48
  • Да, я видел эту статью.

    Но мне показалось, что слишком сложно.

    В итоге разобрался.

    Используется всего 2 строчки:

    $("input.sp-peoplepicker-editorInput[title=controlName]").prop('disabled', true); //disable input textbox
    $(".sp-peoplepicker-delImage").hide(); //hide the 'x' after the link
    Где в качестве controlName указываем отображаемое имя столбца в одинарных кавычках - 'Author'.

    в этом решении последней строчкой удаляете ВСЕ крестики, и если пару peoplepicker, то удалятся в обоих. а если нужно только в одном?

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

    17 марта 2016 г. 7:55
    Модератор
  • в этом решении последней строчкой удаляете ВСЕ крестики, и если пару peoplepicker, то удалятся в обоих. а если нужно только в одном?

    Да, об этом я не подумал.

    Надо, конечно, в одном конкретном.

    17 марта 2016 г. 8:34
  • Да, об этом я не подумал.

    Надо, конечно, в одном конкретном.

    Предложенный мной скрипт пробовали?

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

    17 марта 2016 г. 8:49
    Модератор
  • Добрый день

    jQuery("[id^='Initiator']").attr("disabled", "disabled");
    // скрываем крестик удаления выбранного пользователя
    jQuery("[id^='Initiator'] a.sp-peoplepicker-delImage").hide();	


    Что-то у меня не работает:

    <script src="/Style Library/JS/jquery-1.11.3.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    
    $(document).ready(function() {
    	$("[id^='Author0']").attr("disabled", "disabled");
    	$("[id^='Author0'] a.sp-peoplepicker-delImage").hide();	
    }
    
    </script>

    17 марта 2016 г. 8:50
  • странно...

    у меня все работает

    а что говорит?
    что если просто в консоли 

    $("[id^='Author0']")


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

    17 марта 2016 г. 9:01
    Модератор
  • Я потерял закрывающую скобку. Всё работает.

    Спасибо, Владимир.

    17 марта 2016 г. 10:22