Использование javascript для установки поля (форма редактирования элемента SharePoint 2013)

Я пытаюсь использовать JScript на стороне клиента для установки поля, но не могу этого сделать. Может кто кодировку посмотреть?

<script type = "text/javascript">
function setRole() {
    if (ctx.CurrentItem["loggedonuser"].value = "i:0#.w|mickey.mouse") {
        // Setting the IMORole to Yes
        ctx.CurrentItem["IMORole"].value = "Yes";
    }
}

Спасибо!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
3 015
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Состояние вашего if неправильное. Так должно быть:

if (ctx.CurrentItem["loggedonuser"].value === "i:0#.w|mickey.mouse") {
        // Setting the IMORole to Yes
        ctx.CurrentItem["IMORole"].value = "Yes";
}

Обратите внимание на оператор сравнения===.
= предназначен для присвоения, а не для сравнения.

Обновлять:

Чтобы узнать, существует ли значение в массиве или нет, вы можете сделать одно из следующих действий:

  1. Использование jQuery - jQuery.inArray ()
    var exists = $.inArray(value, array);

Пример:

var userValue = ctx.CurrentItem["loggedonuser"].value;
var possibleValues = ["str1", "str2"];

var exists = $.inArray(userValue, possibleValues);
if (exists) {
    ctx.CurrentItem["loggedonuser"].value = "Yes";
}
  1. Javascript - Array.prototype.indexOf ()
    var exists = arrValues.indexOf('Sam') > -1;

Пример:

var userValue = ctx.CurrentItem["loggedonuser"].value;
var possibleValues = ["str1", "str2"];

var exists = possibleValues.indexOf(userValue) > -1;
if (exists) {
    ctx.CurrentItem["loggedonuser"].value = "Yes";
}
  1. Javascript (ES2016) - Array.prototype.includes ()
    ["Sam", "Great", "Sample", "High"].includes("Sam");

Пример:

var userValue = ctx.CurrentItem["loggedonuser"].value;
var possibleValues = ["str1", "str2"];

var exists = possibleValues.includes(userValue);
if (exists) {
    ctx.CurrentItem["loggedonuser"].value = "Yes";
}

Сейчас тестируем, что, если он находится в массиве или у нескольких пользователей?

lee mossolle 29.05.2018 14:45

Извините, я вас не понял. Не могли бы вы добавить пример этого в вопрос?

Prerak Sola 29.05.2018 14:46

В коде, который вы предоставили, указан только один человек. Что, если мне нужно добавить дополнительных пользователей? if (ctx.CurrentItem ["loggedonuser"]. value === "i: 0 # .w | mickey.mouse", "minnie.mouse") {// Установка IMORole на Yes ctx.CurrentItem ["IMORole"] .value = "Да";

lee mossolle 29.05.2018 14:49

Так это будет исправленный? <script src = "code.jquery.com/jquery-1.12.4.min.js" type = "text / javascript"> </script> <script type = "text / javascript"> $ (function () {SetAField ();}); функция SetAField () {var userValue = ctx.CurrentItem ["loggedonuser"]. значение; var possibleValues ​​= ["я: 0 # .w | 1", "я: 0 # .w | 2", "я: 0 # .w | 3"]; var существует = $ .inArray (userValue, possibleValues); если (существует) {ctx.CurrentItem ["IMORole"]. значение = "Да"; }} функция PreSaveAction () {SetAField (); вернуть истину; } </script>

lee mossolle 15.06.2018 17:07

Пример ниже для справки:

1. Создайте настраиваемый список, добавьте поле «Лицо или группа» «loggedonuser», добавьте поле «Да / Нет» «IMORole» (значение по умолчанию - «Нет»).

2. Добавьте приведенный ниже код в веб-часть редактора сценариев в файле editform.aspx.

<script src = "//code.jquery.com/jquery-3.2.1.min.js" type = "text/javascript"></script>
<script type = "text/javascript">
$(function(){
    var loggedonuser=$("input[name^='loggedonuser'][name$='ClientPeoplePicker_HiddenInput']").val();
    if (loggedonuser.indexOf("i:0#.w|mickey.mouse")!=-1){
        $("input[title='IMORole']").prop('checked', true);
    }
});
</script>

Чтобы получить текущее имя для входа, мы также можем использовать REST API для его достижения.

<script src = "//code.jquery.com/jquery-3.2.1.min.js" type = "text/javascript"></script>
<script type = "text/javascript">
$(function(){
    var userid = _spPageContextInfo.userId;
    var loginName=getUserLoginName(userid);
    if (loginName= = "i:0#.w|mickey.mouse"){
        $("input[title='IMORole']").prop('checked', true);
    }
});
function getUserLoginName(userId){
    var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userId + ")";
    // execute AJAX request
    $.ajax({
        url: requestUri,
        type: "GET",
        async: false,
        headers: { "ACCEPT": "application/json;odata=verbose" },
        success: function (data) {
            loginName=data.d.LoginName;
        },
        error: function () {            
        }
    });
    return loginName;
}
</script>

Другие вопросы по теме