Как показать или скрыть столбцы Sharepoint на основе значения столбца Lookup с использованием подстановочных знаков - PullRequest
0 голосов
/ 01 мая 2019

Я использую из коробки Sharepoint 2013 для создания собственного списка.На NewForm.aspx я создал код в веб-части редактора контента, который должен отображать или скрывать столбцы на основе другого значения столбца (Invocation / Near Miss?).Это отлично работает.Я продублировал эту функцию для создания чего-то похожего на основании значения другого столбца (который называется «Какой GCC / MIG / IMT?»), Но этот не работает.

Обратите внимание, что «Какой GCC / MIG / IMT?»column - это поиск из другого списка sharepoint, который у меня есть.он содержит ок.90 записей.Эти записи имеют там текст, подобный приведенному ниже (небольшая выдержка для целей контекста):

Европа-Чехия-MIG

Европа-ЕС-MIG

Европа-ЕС-IMT-GBM

Европа-Франция-MIG

Европа-Франция-IMT-GBM

По сути, я хочу настроить свой оригинальный код (который работает)так что он смотрит на значение в «Какой GCC / MIG / IMT?»столбец, и если выбранное значение содержит буквы « IMT » (то есть включают несколько символов подстановки), то отобразите столбец с именем «IMT PIR».Тем не менее, он только «скрывает» столбец и не «показывает» столбец, когда я наконец выбираю значение, в котором есть символы «IMT».

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

Так что следующая функция работает нормально:

<script src="http://code.jquery.com/jquery-1.7.2.min.js" type="text/javascript&quot;"></script><script type="text/javascript">

$(document).ready(function(){

  // hide various columns when selecting "Near Miss" value 

  $("select[title='Invocation / Near Miss?']").change(function() {
    if ($("select[title='Invocation / Near Miss?']").val() == "Near Miss") {
        $('nobr:contains("Date of first IM meeting")').closest('tr').hide();
        $('nobr:contains("Date of last IM meeting")').closest('tr').hide();
        $('nobr:contains("Number of meetings?")').closest('tr').hide();
        $('nobr:contains("PIR Author")').closest('tr').hide();
        $('nobr:contains("PIR Approval Date")').closest('tr').hide();
        $('nobr:contains("PIR Submitted to Corporate Security Site?")').closest('tr').hide();
        $('nobr:contains("HELIOS Event ID")').closest('tr').hide();
        $('nobr:contains("Incident status")').closest('tr').hide();
        $('nobr:contains("PIR attached?")').closest('tr').hide();
        $('nobr:contains("Incident date (near miss)")').closest('tr').show();
       } 
  // Show certain columns when selecting "Invocation"

    else if($("select[title=' Invocation / Near Miss?']").val() !== "Invocation"){
        $('nobr:contains("Date of first IM meeting")').closest('tr').show();
        $('nobr:contains("Date of last IM meeting")').closest('tr').show();
        $('nobr:contains("PIR Author")').closest('tr').show();
        $('nobr:contains("PIR Approval Date")').closest('tr').show();
        $('nobr:contains("PIR Submitted to Corporate Security Site?")').closest('tr').show();
        $('nobr:contains("HELIOS Event ID ")').closest('tr').show();
        $('nobr:contains("Number of meetings?")').closest('tr').show();
        $('nobr:contains("HELIOS Event ID")').closest('tr').show();
        $('nobr:contains("Incident status")').closest('tr').show();
        $('nobr:contains("PIR attached?")').closest('tr').show();
        $('nobr:contains("Incident date (near miss)")').closest('tr').hide();
      }
 });
});

Эта следующая функция (которая закодирована в том же CEWP) просто скрывает столбец IMT PIR, но независимо от того, какое значение Iвыберите и не будет отображаться снова, если я выберу значение, которое имеет «IMT» в этом значении.

$(document).ready(function(){

  // Show IMT PIR column when selecting a value which has "IMT" in it"
  $("select[title='Which GCC / MIG / IMT?']").change(function() {
    if ($("select[title='Which GCC / MIG / IMT?']").val() == "*IMT*") {
        $('nobr:contains("IMT PIR")').closest('tr').show();

       } 
   // Hide IMT PIR column when NOT selecting a value which has "IMT" in it"
    else if($("select[title='Which GCC / MIG / IMT?']").val() !== "*IMT*"){
        $('nobr:contains("IMT PIR")').closest('tr').hide();
      }
 });
});

 </script> 

По сути, я ожидал бы увидеть столбец IMT PIR там, где я выделил желтым цветом, когда значение в поле «Какой GCC / MIG / IMT?»столбец имеет значение, содержащее «IMT» внутри него;

Обратите внимание, я не разработчик, но буду очень признателен за советы от вас, удивительные люди :)

Спасибо, Шон Example of what I'm expecting to see

1 Ответ

0 голосов
/ 08 мая 2019

Используйте ключевое слово $ (this), так как вы уже находитесь внутри функции изменения.

$(document).ready(function(){

  // Show IMT PIR column when selecting a value which has "IMT" in it"
  $("select[title='Which GCC / MIG / IMT?']").change(function() {
    if ($(this).val() == "*IMT*") {
        $('nobr:contains("IMT PIR")').closest('tr').show();

       } 
   // Hide IMT PIR column when NOT selecting a value which has "IMT" in it"
    else if($(this).val() !== "*IMT*"){
        $('nobr:contains("IMT PIR")').closest('tr').hide();
      }
 });
});
...