2

나는 셰어 포인트 목록에 항목을 삽입하기 위해 CustomNewForm을 가지고있다.자바 스크립트에서 서식있는 텍스트 상자 공유 지점 검색

필드는 "Reason"및 "Reason OverView"입니다. 둘 다 여러 줄 서식있는 텍스트 입력란 "Reason"의 텍스트를 "Reason Overview"로 복사해야합니다. (부분 문자열) 이 작업 흐름을 수행하려고했지만 양식 필드의 부분 문자열을 가져올 수있는 솔루션을 찾을 수 없습니다.

자바 스크립트에서 "Reason"필드의 값을 가져 오려고합니다. 그러나 그렇게 할 수 없다.

내 코드 ::

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

어떤 방법을 (작동하지 않는)이 완료하세요?

+0

를 사용하여 해결? –

+0

"확인"버튼을 클릭하면 PreSaveAction()이 호출됩니다. 그것의 기본 셰어 포인트 기능. 나는 그것을 재정의했다. – Vabs

답변

3

나는 어디`PreSaveAction()`를 호출 할 때 /이

<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

richtexteditor textarea로 변경 한 후에도 jquery와 비슷한 문제가 발생합니다.이 코드는 $ ('textarea [title $ = "BodyText"]')와 작동하지 않습니다. – o365spo

관련 문제