JS не заполняется автоматически пользователем SharePoint - PullRequest
0 голосов
/ 25 апреля 2018

Я включил фрагмент кода, который, кажется, не выполняет то, что я хочу. В прошлом я мог использовать это для автоматического заполнения имени на основе имени пользователя в SharePoint. Там нет очевидных ошибок, все остальное в сценарии работает нормально, и, похоже, это делает, он просто не делает то, что задумано.

function getWebUserData() {
        context = new SP.ClientContext.get_current();
        web = context.get_web();
        currentUser = web.get_currentUser();
        currentUser.retrieve();
        context.load(web);
        context.executeQueryAsync(Function.createDelegate(this, this.onSuccessMethod), 
             Function.createDelegate(this, this.onFailureMethod));
}

function onSuccessMethod(sender, args) {
    var userObject = web.get_currentUser();

    $("input[Title='Requester']").val(userObject.get_title());
    $("input[Title='Requester']").attr('disabled','disabled');   
}

1 Ответ

0 голосов
/ 26 апреля 2018

Ниже код работает в моем локальном SharePoint 2013. ссылка на поток

<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            function GetCurrentUser() {
                var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/currentuser";
                var requestHeaders = { "accept": "application/json;odata=verbose" };
                $.ajax({
                    url: requestUri,
                    contentType: "application/json;odata=verbose",
                    headers: requestHeaders,
                    success: onSuccess,
                    error: onError
                });
            }
            function onSuccess(data, request) {
                var userName = data.d.LoginName;
                //parse the value.
                userName = userName.toString().split("i:0#.w|")[1];
                SetUserFieldValue("Requester", userName);
            }
            function onError(error) {
                //alert(error);
            }
            function SetUserFieldValue(fieldName, userName) {
                var _PeoplePicker = $("div[title='" + fieldName + "']");
                var _PeoplePickerTopId = _PeoplePicker.attr('id');
                var _PeoplePickerEditer = $("input[title='" + fieldName + "']");
                _PeoplePickerEditer.val(userName);
                var _PeoplePickerOject = SPClientPeoplePicker.SPClientPeoplePickerDict[_PeoplePickerTopId];
                _PeoplePickerOject.AddUnresolvedUserFromEditor(true);
            }
            GetCurrentUser();
        });
    </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...