0

Je souhaite insérer dans mon NewForm.aspx deux scripts ou plus dans jquery. J'ai écrit le code dans un site Web de l'éditeur de contenu comme beaucoup de tutoriel en ligne.Ajouter deux ou plusieurs scripts jquery dans la partie web de l'éditeur de contenu Sharepoint 2007

J'ai deux scripts qui fonctionnent bien séparément, mais quand je fusionne le script ne fonctionne pas (ne fonctionne exactement que l'un des deux).

C'est mon code dans l'éditeur de contenu:

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

Merci pour votre aide,

EDIT RESOLU:

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> 

Cordialement, Francesco

Répondre

0

Je vois un couple des problèmes, certains qui casseront carrément ceci (la fonction dupliquée n définitions) & d'autres qui sont conception moins-optimale. Vous n'avez pas besoin de charger la bibliothèque jQuery deux fois et vous ne devez pas définir deux fois la même fonction avec des contenus différents.

Essayez ceci:

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

également avoir la possibilité de masquer certaines colonnes de chargement de la page initiale, tenez compte ci-dessous:

MISE À JOUR:

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

Merci pour votre réponse ... ça marche! Une autre question..il est possible de cacher une ligne quand j'ouvre un nouveau formulaire? Dans mon cas "sino" par défaut est "non" mais je vois "descrizione". Quand j'ouvre le formulaire je veux cacher "descrizione". Merci! – user2277798

+0

Merci beaucoup! – user2277798

+0

J'ai essayé de cacher une rangée de champ "date". Il ne cache que le champ, mais pas la rangée. Je dois utiliser un réglage différent? Merci beaucoup! – user2277798

Questions connexes