2017-12-28 45 views
0

몇 개의 텍스트 영역이 포함 된 HTML 페이지가 있지만 동적으로 더 많은 텍스트 영역을 추가합니다. document.getElementById("textAreas").innerHTML += '<textarea class="textArea"></textarea>';을 사용하여 html 파일에 textareas를 추가합니다. 문제는 새로운 텍스트 영역을 만들 때마다 새로 만든 텍스트 영역이 텍스트가 사라진다는 것입니다. 그러나 텍스트의 처음부터로드 된 텍스트 영역은 사라지지 않습니다.HTML/TS : 다른 텍스트 영역을 만들거나 버튼을 클릭 한 후 텍스트 콘텐츠가 사라집니다.

편집 :

사라지는 텍스트의 문제 추가 버튼이 사라 압박. 현재 문제는 텍스트 영역 추가 버튼이 아닌 다른 버튼을 클릭하면 새로 만든 텍스트가 사라진다는 것입니다.

이러한 것들에 장착 된 표준 : enter image description here

추가 버튼을 두 번 누른 후 : 그래서 지금

enter image description here

: 나는 일부 데이터를 입력 이제 enter image description here

을 모든 텍스트 영역이 채워져 있습니다. 다음 이미지의 문제는 표준이 아닌 텍스트를 클릭 한 후 사라지는 것입니다. 추가 버튼 : enter image description here

버튼을 클릭하면 텍스트가 사라집니다. html로 및 TS 파일은 다음과 같습니다 :

.html 중에서

.TS :

가지고있는 현재의 방법으로는 전체 DOM 노드를 제거되기 때문에 텍스트가 사라
addField(){ 
    document.getElementById("textAreas").innerHTML += '<textarea class="textArea"></textarea>'; 
    } 

saveAsDraft(){ 
    this.paramReport.isFinal = false; 
    this.saveAndSend(); 
    } 

    saveAsFinal(){ 
    this.paramReport.isFinal = true; 
    this.saveAndSend(); 
    } 

    saveAndSend(){ 
    var textAreaList = document.getElementsByClassName("textArea"); 
    this.paramReport.notes = []; 
    for (let i = 0; i < textAreaList.length; i++) { 
     //console.log(textAreaList[i].textContent); 
     this.paramReport.notes.push(textAreaList[i].textContent); 
    } 
    let status: string; 
    if (this.paramReport.isFinal) status = "FINAL"; else status = "DRAFT"; 
    this.reportsProvider.editReportFromList(this.paramReport); 
    this.toastCtrl.create({ 
     message: 'Submitted report with id: ' + this.paramReport.id 
     + ' made by ' + this.paramReport.submittedBy + ' as ' + status, 
     duration: 2000, 
     position: 'top' 
    }).present(); 
    this.navCtrl.push(ReportOverviewPage); 
    } 

답변

1

, 새 텍스트 영역으로 다시 렌더링합니다. 대신 document.createElement API를 사용해야합니다.

var textarea= document.createElement("textarea"); 
textarea.className = "textArea"; 
document.getElementById("textAreas").appendChild(textarea); 
+0

다른 텍스트 영역을 추가 할 때 사라지는 텍스트 문제가 해결되었습니다. 다음 문제는 버튼을 클릭하면 텍스트가 사라지고 console.log에 공백이 기록됩니다. @orabis – BrianM

+0

addField가 제대로 작동하지만 saveAsDraft 및 saveAsFinal에 여전히 문제가 있습니까? – orabis

+0

예, 버튼 중 하나를 누르면 텍스트가 사라집니다. @orabis – BrianM