【问题标题】:How to show/hide SharePoint columns based on the dropdown input?如何根据下拉输入显示/隐藏 SharePoint 列?
【发布时间】:2019-08-07 21:31:36
【问题描述】:

我在 SharePoint 脚本编辑器上有这段代码。有一个带有是/否选项的下拉菜单,根据用户输入,我想显示或隐藏这些 col 1-6 字段。例如,如果用户说“是”,那么我想显示 col 1-6 字段,如果他们后来决定说“No”,那么我想隐藏 col 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 列)。

【问题讨论】:

  • 有更新吗?如果下面的回复对这个问题有帮助,请采纳为答案,以便对论坛中的其他人也有帮助。

标签: jquery sharepoint


【解决方案1】:

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

<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>

选择否,隐藏所有文件:

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

【讨论】:

  • 谢谢,我想我只是错过了代码中的“选择”功能。
  • @ArifKhan,是的,我在上面的代码 sn -p 中更改了选择更改功能。如果回复对您有帮助,您可以接受作为答案,以便帮助其他在论坛中遇到类似问题的人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-04
  • 1970-01-01
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多