1
votes

Nouvelle ligne de l'éditeur de Monaco dans getValue ()

Donc, j'utilise Monaco Editor comme une grande zone de texte mise en évidence par la syntaxe qui est soumise dans un formulaire avec du JavaScript. Pour permettre cela, j'ai une balise , et le JavaScript est connecté à un bouton qui fait ceci:

#Hello World*I am some text*

Cela fonctionne bien et soumet effectivement le formulaire, cependant l'appel getValue () semble renvoyer le texte dans l'éditeur monaco sans les nouvelles lignes. Texte qui ressemble à ceci à Monaco:

#Hello World
*I am some text*

est renvoyé comme ceci:

function submitButtonClick(){
  document.getElementById("content").value = monacoeditor.getValue();
  document.getElementById("myForm").submit();
}

Comment puis-je m'assurer que j'obtiens le contenu de l'éditeur, y compris toutes les nouvelles lignes?


1 commentaires

Avez-vous trouvé une solution à ce problème? J'ai un problème similaire.


3 Réponses :


0
votes

Le problème est que le HTML ne prend pas en charge les sauts de ligne. Il est destiné à une entrée sur une seule ligne (imaginez les noms d'utilisateur contenant des sauts de ligne).

Pour une entrée sur plusieurs lignes, il y a la balise , qui est juste un élément de formulaire comme les autres. Votre formulaire ressemblerait alors à ceci:

function submitButtonClick () {
    document.getElementById ("content").value = monacoeditor.getValue ();
    document.getElementById ("myForm").submit ();
}

Vous pouvez ensuite définir la valeur de la zone de texte et soumettre le formulaire comme vous l'avez fait auparavant:

<form id="myForm" action="..." method="POST">
    <textarea id="content" name="content" style="display: none;"></textarea>
</form>


3 commentaires

Malheureusement, j'ai oublié de mentionner que j'ai essayé à la fois une zone de texte et une entrée de texte, les deux ayant un effet identique


Pouvez-vous vérifier qu'il s'agit bien de Monaco sans les sauts de ligne (par exemple avec console.log (monacoeditor.getValue ()); )? Si ce n'est pas le cas, cela peut être un problème de transmission.


Oui il semble que ce soit un problème de transmission, car les retours à la ligne sont effectivement conservés lorsque le contenu de l'éditeur est affiché dans la console en utilisant la méthode que vous avez suggérée



0
votes

vous devez utiliser


0 commentaires

0
votes

Lors de l'extraction de données de Monaco, les nouvelles lignes seront des caractères / n . Dans certaines situations, cela ne fonctionnera pas seul car un retour chariot est également requis.

String.replace("\n", "\r\n");

devrait résoudre ce problème


0 commentaires