0

我想在我的 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>

问候,弗朗切斯科

4

1 回答 1

0

我看到了几个问题,其中一些会彻底破坏这个(重复的函数定义)和其他不是最佳设计的问题。您不需要两次加载 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>
于 2014-05-08T16:24:20.023 回答