【问题标题】:SharePoint online show or hide columns multiple fields required with same functionalitySharePoint online 显示或隐藏具有相同功能所需的多个字段的列
【发布时间】:2020-09-17 05:38:16
【问题描述】:

我正在使用以下代码处理带有显示或隐藏列的 SharePoint 在线表单。它运行良好,但无法将三个代码组合在一起,并且默认情况下在编辑项表单上所有字段都被隐藏,即使根据代码它应该根据选定的下拉值显示字段。如果我们再次更改编辑表单中的值,则显示值工作正常。

连同此代码,我希望所有可见字段都成为授权字段,非常感谢任何帮助。

<script src="/sites/XXXXXX/XXXXXXXX/SiteAssets/jquery-1.7.2.min%20-%20Show%20or%20Hide.js" type="text/javascript"> </script>
<script type="text/javascript">

         $(document).ready(function () {
            $('nobr:contains("Person1")').closest('tr').hide();
            $('nobr:contains("Person2")').closest('tr').hide();
            $('nobr:contains("Dropdown")').closest('tr').hide();
            $('nobr:contains("Dropdown1")').closest('tr').hide();
            $('nobr:contains("Text")').closest('tr').hide();
            $('nobr:contains("Dropdown2")').closest('tr').hide();
            $('nobr:contains("Date column")').closest('tr').hide();
            $('nobr:contains("Number filed")').closest('tr').hide();
            $('nobr:contains("Dropdown3")').closest('tr').hide();
            $('nobr:contains("Remarks")').closest('tr').hide();
            $('nobr:contains("Dropdown4")').closest('tr').hide();
            $('nobr:contains("number2)")').closest('tr').hide();
            $('nobr:contains("Dropdown5")').closest('tr').hide();
            $('nobr:contains("Dropdown6")').closest('tr').hide();
            
            $("select[title='Status Required Field']").change(function () {
            console.log("selection changed", $("[title='Status Required Field'] option:selected").text());
            alert($("[title='Status Required Field'] option:selected").text());
                if ($("[title='Status Required Field'] option:selected").text() != "submitted") {
                    $('nobr:contains("Person1")').closest('tr').hide();
                    $('nobr:contains("Person2")').closest('tr').hide();
                    $('nobr:contains("Dropdown")').closest('tr').hide();
                    $('nobr:contains("Dropdown1")').closest('tr').hide();
                    $('nobr:contains("Text")').closest('tr').hide();
                    $('nobr:contains("Dropdown2")').closest('tr').hide();
                    $('nobr:contains("Date column")').closest('tr').hide();
                    $('nobr:contains("Number filed")').closest('tr').hide();
                    $('nobr:contains("Dropdown3")').closest('tr').hide();
                    $('nobr:contains("Remarks")').closest('tr').hide();
                    $('nobr:contains("Dropdown4")').closest('tr').hide();
                    $('nobr:contains("number2")').closest('tr').hide();
                    $('nobr:contains("Dropdown5")').closest('tr').hide();
                    $('nobr:contains("Dropdown6")').closest('tr').hide();

            }
                else {
                    $('nobr:contains("Person1")').closest('tr').show();
                    $('nobr:contains("Person2")').closest('tr').show();
                    $('nobr:contains("Dropdown")').closest('tr').show();
                    $('nobr:contains("Dropdown1")').closest('tr').show();
                    $('nobr:contains("Text")').closest('tr').show();
                    $('nobr:contains("Dropdown2")').closest('tr').show();
                    $('nobr:contains("Date column")').closest('tr').show();
                    $('nobr:contains("Number filed")').closest('tr').show();
                    $('nobr:contains("Dropdown3")').closest('tr').show();
                    $('nobr:contains("Remarks")').closest('tr').show();
                    $('nobr:contains("Dropdown4")').closest('tr').show();
                                                                            
                }
            });
            
        });
</script>

<script src="/sites/XXXXXX/XXXXXXXX/SiteAssets/jquery-1.7.2.min%20-%20Show%20or%20Hide.js" type="text/javascript"> </script>
<script type="text/javascript">

         $(document).ready(function () {
            $('nobr:contains("number2")').closest('tr').hide();
            $('nobr:contains("Dropdown5")').closest('tr').hide();
            $('nobr:contains("Dropdown6")').closest('tr').hide();
            
            $("select[title='Dropdown4']").change(function () {
            console.log("selection changed", $("[title='Dropdown4'] option:selected").text());
            alert($("[title='Dropdown4'] option:selected").text());
                if ($("[title='Dropdown4'] option:selected").text() != "Active") {
                    $('nobr:contains("number2")').closest('tr').hide();
                    $('nobr:contains("Dropdown5")').closest('tr').hide();
                    $('nobr:contains("Dropdown6")').closest('tr').hide();

            }
                else {
                    
                    $('nobr:contains("number2")').closest('tr').show();
                    $('nobr:contains("Dropdown5")').closest('tr').show();                                   
                }
            });
            
        });
</script>

<script src="/sites/XXXXXX/XXXXXXXX/SiteAssets/jquery-1.7.2.min%20-%20Show%20or%20Hide.js" type="text/javascript"> </script>
<script type="text/javascript">

         $(document).ready(function () {
            $('nobr:contains("Dropdown6")').closest('tr').hide();
                        
            $("select[title='Dropdown5").change(function () {
            console.log("selection changed", $("[title='Dropdown5'] option:selected").text());
            alert($("[title='Dropdown5'] option:selected").text());
                if ($("[title='Dropdown5'] option:selected").text() != "Yes") {
                    $('nobr:contains("Dropdown6")').closest('tr').hide();

            }
                else {
                    
                    $('nobr:contains("Dropdown6")').closest('tr').show();                                   
                }
            });
            
        });
</script>```

【问题讨论】:

    标签: sharepoint-online


    【解决方案1】:

    就编辑表单上隐藏的字段而言,您的文档就绪功能正在隐藏这些字段。有很多方法可以获取表单状态。您可以简单地检查位置是否包含新建、显示或编辑表单并相应地隐藏您的字段。

            var isNewMode = document.location.pathname.indexOf("/NewForm.aspx") > -1;
            var isDisplayMode = document.location.pathname.indexOf("/DispForm.aspx") > -1;
            var isEditMode = document.location.pathname.indexOf("/EditForm.aspx") > -1;
    
            if(isNewMode)
            {
                alert("New");
            }
    
            if(isDisplayMode)
            {
                alert("Display");
            }
    
            if( isEditMode)
            {
                alert("Edit");
            }
    

    您可以使用 PreSaveAction() 函数进行自定义验证。单击提交按钮后,将执行此功能。返回 true 提交表单,否则返回 false 留在同一页面。

    为验证添加如下代码:

           function PreSaveAction(){
            if($('nobr:contains("someid")').val() == ''){
                alert('Required field'); // some custom validation
                return false;
            }else{
                return true;
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 2014-09-02
      • 1970-01-01
      • 2021-03-18
      • 1970-01-01
      相关资源
      最近更新 更多