【问题标题】:Add two or more script jquery in content editor web part Sharepoint 2007在内容编辑器 Web 部件 Sharepoint 2007 中添加两个或多个脚本 jquery
【发布时间】:2014-05-10 00:04:46
【问题描述】:

我想在我的 NewForm.aspx 中插入两个或多个 jquery 脚本。我在内容编辑器 Web 部件中编写了与在线教程一样多的代码。

我有两个单独工作的脚本,但是当我合并脚本时不起作用(完全是两个之一)。

这是我在内容编辑器中的代码:

    <p>
    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.js">
    </script>  
    <script type="text/javascript">
    function HideColumn(targetColumn, hideColumn) {  
        var columnObj = $("input[Title='" + hideColumn + "']");
        $("input[Title='" + targetColumn + "']").bind('click',function() { 

            if($(this).is(':checked')) {                  
                columnObj.closest("tr").show();
             }
             else {
                columnObj.closest("tr").hide();
             }
        });      
       }

     $(document).ready(function() {
            HideColumn('sino','descrizione');
        });
    </script>

    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.js">
    </script>  
    <script type="text/javascript">
    function HideColumn(targetColumn, hideColumn) {  
        var columnObj = $("input[Title='" + hideColumn + "']");
        $("select[Title='" + targetColumn + "']").bind('click',function() { 

            if($(this).val() == "Pippo") {                
                columnObj.closest("tr").show();
             }
             else {
                columnObj.closest("tr").hide();
             }
        });      
       }

     $(document).ready(function() {
            HideColumn('Scelta','descrizione');
        });
    </script>
</p>

感谢您的帮助,

编辑已解决:

This is the correct code:

<p>
    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.js">
    </script>  
    <script type="text/javascript">
    function HideColumn(targetColumn1, hideColumn1, targetColumn2, hideColumn2) {  
        var columnObj1 = $("input[Title='" + hideColumn1 + "']");
        $("input[Title='" + targetColumn1 + "']").bind('click',function() { 

            if($(this).is(':checked')) {                  
                columnObj1.closest("tr").show();
             }
             else {
                columnObj1.closest("tr").hide();
             }
        });

        var columnObj2 = $("input[Title='" + hideColumn2 + "']");
    $("select[Title='" + targetColumn2 + "']").bind('click',function() { 

        if($(this).val() == "Pippo") {                
            columnObj2.closest("tr").show();
         }
         else {
            columnObj2.closest("tr").hide();
         }
    });       
       }
      $(document).ready(function() {
            HideColumn('sino','descrizione','Scelta','Titolo');
        });
    </script>

</p>

问候, 弗朗切斯科

【问题讨论】:

    标签: javascript jquery sharepoint sharepoint-2007 content-editor


    【解决方案1】:

    我看到了几个问题,其中一些会彻底破坏这一点(重复的函数定义),而另一些则不是最佳设计。您不需要两次加载 jQuery 库,也不应该使用不同的内容两次定义相同的函数。

    试试这个:

    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.js"></script>  
    <script type="text/javascript">
        function HideColumn(targetColumn, hideColumn) {  
            var columnObj = $("input[Title='" + hideColumn + "']");
            $("input[Title='" + targetColumn + "']").bind('click',function() { 
    
                if($(this).is(':checked') || $(this).val() == "Pippo") {                  
                    columnObj.closest("tr").show();
                 }
                 else {
                    columnObj.closest("tr").hide();
                 }
            });      
        }
        $(document).ready(function() {
            HideColumn('sino','descrizione');
            HideColumn('Scelta','descrizione');
        });
    </script>
    

    若要在初始页面加载时隐藏某些列,请考虑以下事项:

    更新

    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.js"></script>  
    <script type="text/javascript">
        function HideColumnOnLoad(hideColumn) {
            $("input[Title='" + hideColumn + "']").closest("tr").hide();
        }
        function HideColumnOnClick(targetColumn, hideColumn) {  
            var columnObj = $("input[Title='" + hideColumn + "']");
            $("input[Title='" + targetColumn + "']").bind('click',function() { 
    
                if($(this).is(':checked') || $(this).val() == "Pippo") {                  
                    columnObj.closest("tr").show();
                 }
                 else {
                    columnObj.closest("tr").hide();
                 }
            });      
        }
        $(document).ready(function() {
            HideColumnOnLoad('descrizione');
            HideColumnOnClick('sino','descrizione');
            HideColumnOnClick('Scelta','descrizione');
        });
    </script>
    

    【讨论】:

    • 感谢您的回复...有效!另一个问题..当我打开一个新表单时可以隐藏一行吗?在我的情况下,“sino”默认为“no”,但我看到“descrizione”。当我打开表格时,我想隐藏“描述”。谢谢!
    • 我试图隐藏一行“日期”字段。它仅隐藏字段,但不隐藏行。我必须使用不同的设置?非常感谢!
    • RE:日期字段,这是因为 SharePoint 使用嵌套表作为弹出日历日期选择器的输入和图标的标记。在这些情况下,您的选择器需要是: columnObj.closest('td.ms-formbody').closest('tr').hide();
    • 另外,如果您希望在所有一个函数中实现相同的功能,我会修改 HideColumnOnLoad 函数以接受字段类型的第二个参数。然后,所述参数将用于根据字段类型应用必要的条件逻辑(如果不是其他的话,Person/Group 字段也可能有类似的怪癖)。如果您需要帮助,我建议您发布一个新问题;不确定我们是否在此处滥用评论...
    • 再次感谢。你救了我的命:)
    猜你喜欢
    • 2011-09-24
    • 2011-04-09
    • 2019-07-14
    • 2017-04-12
    • 2016-10-21
    • 2012-09-15
    • 2017-11-29
    • 2012-11-08
    • 2011-05-17
    相关资源
    最近更新 更多