根据下拉选择显示/隐藏多个字段

时间:2018-04-16 03:24:42

标签: javascript sharepoint

我正在使用SharePoint日历,我们使用多个列,它是25列,每次我们想要添加新记录时,我们必须跳过很多列。因此,根据我的选择显示或隐藏多个列,使用下拉列表将是一个好主意。

在发现下面的代码后我做了什么,我创建了一个名为Selection的下拉列表并应用了下面的脚本代码,但是根据我的选择它不起作用。如果你们能在这个问题上帮助我,我将不胜感激。

谢谢

<script src="/SiteAssets/jquery-3.3.1.js"></script>
<script src="/SiteAssets/sputility.js "></script>

<script>

$(document).change(function() {
    var ddlValue = SPUtility.GetSPField('Selection').GetValue();

    if (ddlValue == 'Country') {
    SPUtility.ShowSPField('Country');
    SPUtility.ShowSPField('Colour');
    SPUtility.HideSPField('Animal');
    SPUtility.HideSPField('Fruit');
    }

    if (ddlValue == 'Fruit') {
    SPUtility.ShowSPField('Fruit');
    SPUtility.ShowSPField('Colour');
    SPUtility.HideSPField('Country');
    SPUtility.HideSPField('Animal');
    }
    if (ddlValue == 'Animal') {
    SPUtility.ShowSPField('Animal');
    SPUtility.HideSPField('Country');
    SPUtility.HideSPField('Fruit');
    SPUtility.HideSPField('Colour');
    }

    if (ddlValue == 'Colour') {
    SPUtility.ShowSPField('Colour');
    SPUtility.ShowSPField('Animal');
    SPUtility.HideSPField('Country');
    SPUtility.HideSPField('Fruit');
    }
});

</script>

1 个答案:

答案 0 :(得分:1)

您需要做的第一件事是创建一个链接到您的下拉列表的change()函数,以便每次更改值时都会触发该函数。你可以这样做:

$("your selector for your dropdownfield").change(function() {
    //your actions here
});

您需要做的下一件事是获取下拉字段的值,然后根据其值隐藏字段。为此,您需要执行以下操作:

var ddlValue = SPUtility.GetSPField('Selection').GetValue();

if (ddlValue == 'Test Value 1') {
    //hide fields for 'Test Value 1'
}

因此,如果我们将两者结合在一起,您最终会得到:

$("your selector for your dropdownfield").change(function() {
    var ddlValue = SPUtility.GetSPField('Selection').GetValue();

    if (ddlValue == 'Test Value 1') {
        //hide fields for 'Test Value 1'
    }
});

如果change()函数中有条件,您可以添加更多内容,现在您应该可以根据下拉列表的值隐藏/显示字段。

让我知道它是否有效!