2

J'ai CustomNewForm pour insérer des éléments dans la liste des points de partage.Récupération de sharepoint de zone de texte enrichi dans javascript

Les champs sont "Reason" et "Reason OverView"; les deux champs de texte enrichi à plusieurs lignes. J'ai besoin de copier du texte de "Reason" à "Reason Overview" (une sous-chaîne) J'ai essayé de faire ceci avec workflow mais je n'ai pas trouvé de solution pour obtenir une sous-chaîne d'un champ de formulaire. J'essaie d'obtenir la valeur du champ "Reason" dans javascript; mais incapable de le faire.

MON CODE :: (ne fonctionne pas)

<script type="text/javascript"> 
function PreSaveAction() 
{ 
    var Reason = getTagFromIdentifierAndTitle("textarea","TextField","Reason"); 
    var Original = getTagFromIdentifierAndTitle("textarea","TextField","Reason Overview"); 
    alert('Hi'); 
    Original.innerHTML=Reason.innerHTML; 
    return true; 
} 

function getTagFromIdentifierAndTitle(tagName, identifier, title) 
{ 
    var len = identifier.length; 

    var tags = document.getElementsByTagName(tagName); 

    for (var i=0; i < tags.length; i++) 
    { 
     var tempString = tags[i].id; 

     if (tags[i].title == title && (identifier == "" || tempString.indexOf(identifier) == tempString.length - len)) 
     { 
      return tags[i]; 
     } 
    } 
     return null; 
} 
</script> 

Une manière de réaliser ce but ??

+0

Quand/Où appelez-vous 'PreSaveAction()'? –

+0

PreSaveAction() est appelée lorsque l'on clique sur le bouton "OK". Sa fonction sharepoint par défaut. J'ai surpassé cela. – Vabs

Répondre

3

Je l'ai résolu en utilisant cette

<script type="text/javascript"> 
function PreSaveAction() 
{ 
    var Reason = getTagFromIdentifierAndTitle("textarea","TextField","Reason"); 
    var Original = getTagFromIdentifierAndTitle("textarea","TextField","Reason Overview"); 
    var reasonText = RTE_GetEditorDocument(Reason.id); 

    var reasonOverviewText = reasonText.body.innerText; 
    if(reasonOverviewText.length>=20) 
    { 
     reasonOverviewText = reasonOverviewText.substring(0,20)+'......'; 
     Original.innerText = reasonOverviewText; 
    } 
    else 
    { 
     Original.innerText = reasonOverviewText; 
    } 
    return true; 
} 

function getTagFromIdentifierAndTitle(tagName, identifier, title) 
{ 
    var len = identifier.length; 

    var tags = document.getElementsByTagName(tagName); 

    for (var i=0; i < tags.length; i++) 
    { 
     var tempString = tags[i].id; 

     if (tags[i].title == title && (identifier == "" || tempString.indexOf(identifier) == tempString.length - len)) 
     { 
      return tags[i]; 
     } 
    } 
     return null; 
} 
</script> 
+0

J'ai un problème similaire avec jquery après avoir changé pour une zone de texte richtexteditor .. ce code ne fonctionne pas maintenant $ ('textarea [title $ = "BodyText"]'). Val ('hello'); – o365spo

Questions connexes