Показать скрыть поле зависит от выбранного значения sharepoint онлайн - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть список из 2 столбцов, первый - «Город», который является типом выбора. Второй столбец - «Другой», который представляет собой одну строку текста. когда пользователь выбирает «другое» в «Город, который я хочу», появляется столбец «OtherCity», если он выбирает другой вариант, я хочу скрыть. Я пишу код, используя простой javascript, я не хочу использовать какую-либо библиотеку, просто код в javascript.

<script type="text/javascript">
  function mySelectfunction(){
  getValue = document.getElementById("City").value;
  if(getValue == "other"){                     
    document.getElementById("OtherCity").style.display ="none";
  }else{                   
    document.getElementById("OtherCity").style.display ="block";
  }
}
 </script>  

, но он не работает. Вы можете помочь заставить это работать? * другой вопрос: если второй столбец, который я хочу скрыть, типа «поиск», будет ли код другим?

1 Ответ

0 голосов
/ 23 апреля 2020

Мой тестовый код для вашей справки, а также столбцы Выбор и поиск не нужно изменять код.

Добавьте редактор сценариев в NewForm и вставьте в него код (замените имя столбца).

 <script src="https://cdn.bootcss.com/jquery/3.4.0/jquery.js"></script>
    <script src="https://xxxx.sharepoint.com/sites/dev/SiteAssets/sputility.js">

</script>

    <script>
    $(document).ready(function () {
        // Get a single select dropdown field
        var relacionField = SPUtility.GetSPField('CityLookUp');

        // create a function to show or hide Rates based on Rate value
        var showOrHideField = function() {
            var relacionFieldValue = relacionField.GetValue();
            // Hide the Rates field if the selected value is Especial
            if(relacionFieldValue === 'other') {
                SPUtility.ShowSPField('Other')
            }
            else {
                SPUtility.HideSPField('Other')
            }
        };

        // run at startup (for edit form)
        showOrHideField();

        // make sure if the user changes the value we handle it
        $(relacionField.Dropdown).on('change', showOrHideField);
    });

    </script>

Вы можете скачать sputility. js здесь: https://archive.codeplex.com/?p=sputility

Обновлено:

Сделал код Выше сообщается о любой ошибке?

JavaScript код:

ExecuteOrDelayUntilScriptLoaded(show,"sp.js");
  function show () {
  //Get the select element corresponding to column
    var selectElement=document.getElementById('CityLookUp').parentNode.parentNode.childNodes[3].childNodes[3].childNodes[0];//chnage coulmn name
    //get tr the hidden column located
    var trElement=document.getElementById('Other').parentNode.parentNode;//change column name 
    //hide tr when we get into page,if the default value is 'other' ,do not need this
    trElement.style.display='none';
    //select change event 
    selectElement.onchange =  function () {
     var index = selectElement.selectedIndex;
     //get option value
    var value = selectElement.options[index].text;

      if(value==='other'){
      //show  tr element
        trElement.style.display='';
      }else{
      //hide  tr element
        trElement.style.display='none';
      }
    }
  }

Идея кода состоит в том, чтобы найти соответствующий элемент select и решить, следует ли скрыть элемент tr в столбце other в соответствии с значение параметра.

Подсказка: Наша структура страницы может отличаться, поэтому вам может потребоваться изменить код в соответствии со структурой страницы. Вы можете просмотреть структуру вашей страницы с помощью инструмента разработчика. Результат теста: test result

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...