首页 > 解决方案 > 如何根据下拉输入显示/隐藏 SharePoint 列?

问题描述

我在 SharePoint 脚本编辑器上有这段代码。有一个带有是/否选项的下拉菜单,根据用户输入,我想显示或隐藏这些 col 1-6 字段。例如,如果用户说“是”,那么我想显示第 1-6 列字段,如果他们后来决定说“不”,那么我想隐藏第 1-6 列字段。我尝试了每一件事

我通过在单独的编辑器中分隔每一列尝试了许多不同的选项,默认情况下我可以隐藏它们,但是当我说“是”时,所有字段都会显示,但当我说“否”时,只有最后一个字段(第 6 列)会隐藏。

<script language="javascript"></script>
<script>
// wait for the window to load
$(window).load(function () {
   // EXAMPLE: Set the value of the Title field to Hello world!
   SPUtility.GetSPField('abcdef').MakeReadOnly();
   SPUtility.GetSPField('abcdef').MakeReadOnly();
   SPUtility.GetSPField('abcdef').MakeReadOnly(); 
   SPUtility.HideSPField('Col Name 1');
   SPUtility.HideSPField('Col Name 2');
   SPUtility.HideSPField('Col Name 3');
   SPUtility.HideSPField('Col Name 4');
   SPUtility.HideSPField('Col Name 5');   
   SPUtility.HideSPField('Col Name 6');
   
$(App.Dropdown).on(change(function()) {
    var App = SPUtility.GetSPField('---Dropdown Column Name---');
    var AppValue = App.GetValue();
    if (AppValue === 'No'){
   SPUtility.HideSPField('Col Name 1');
   SPUtility.HideSPField('Col Name 2');
   SPUtility.HideSPField('Col Name 3');
   SPUtility.HideSPField('Col Name 4');
   SPUtility.HideSPField('Col Name 5');   
   SPUtility.HideSPField('Col Name 6');
 }
   else{
    SPUtility.ShowSPField('Col Name 1');
    SPUtility.ShowSPField('Col Name 2');
    SPUtility.ShowSPField('Col Name 3');
    SPUtility.ShowSPField('Col Name 3');
    SPUtility.ShowSPField('Col Name 4');
    SPUtility.ShowSPField('Col Name 5');
    SPUtility.GetSPField('Col Name 1').SetValue("No");
    SPUtility.GetSPField('Col Name 2').SetValue("No");
    SPUtility.GetSPField('Col Name 3').SetValue("No");
    SPUtility.GetSPField('Col Name 4').SetValue("No");
    SPUtility.GetSPField('Col Name 5').SetValue("No");
    SPUtility.GetSPField('Col Name 6').SetValue("No");
 }
});

</script>

现在,使用上面的代码,默认显示所有字段(第 1-6 列)。

标签: jquerysharepoint

解决方案


我创建了一个名为“TestDropDown”的下拉选择字段,并修改代码片段如下:

<script type="text/javascript">

$(window).load(function() {
   SPUtility.HideSPField('Col Name 1');
   SPUtility.HideSPField('Col Name 2');
   SPUtility.HideSPField('Col Name 3');
   SPUtility.HideSPField('Col Name 4');
   SPUtility.HideSPField('Col Name 5');   
   SPUtility.HideSPField('Col Name 6');

  $("select[title='TestDropDown']").change(function() {
    var App = SPUtility.GetSPField('TestDropDown');
    var AppValue = App.GetValue();
    if (AppValue === 'No'){
   SPUtility.HideSPField('Col Name 1');
   SPUtility.HideSPField('Col Name 2');
   SPUtility.HideSPField('Col Name 3');
   SPUtility.HideSPField('Col Name 4');
   SPUtility.HideSPField('Col Name 5');   
   SPUtility.HideSPField('Col Name 6');
 }
   else{
    SPUtility.ShowSPField('Col Name 1');
    SPUtility.ShowSPField('Col Name 2');
    SPUtility.ShowSPField('Col Name 3');
    SPUtility.ShowSPField('Col Name 3');
    SPUtility.ShowSPField('Col Name 4');
    SPUtility.ShowSPField('Col Name 5');
    SPUtility.GetSPField('Col Name 1').SetValue("No");
    SPUtility.GetSPField('Col Name 2').SetValue("No");
    SPUtility.GetSPField('Col Name 3').SetValue("No");
    SPUtility.GetSPField('Col Name 4').SetValue("No");
    SPUtility.GetSPField('Col Name 5').SetValue("No");
    SPUtility.GetSPField('Col Name 6').SetValue("No");
 }
 });


});


</script>

选择否,隐藏所有文件:

在此处输入图像描述

更改为是,所有字段都显示:

在此处输入图像描述


推荐阅读