Pourquoi les nouvelles lignes ne fonctionnent-elles pas dans cette fenêtre d'alerte javascript?
Je vois un bon nombre de différents problèmes avec la fenêtre d'alerte et de nouvelles lignes. La plupart sont que le \n
est considéré comme une nouvelle ligne en PHP plutôt que d'être envoyé à javascript.
Dans mon cas, la chaîne est en cours de sortie dans une nouvelle fenêtre affichant \n
. J'ai juste essayé de l'écrire \n
dans une boîte d'alerte via jsfiddle, et ça a fonctionné, donc ça doit être ma méthode de faire les choses...
Ici est la chaîne de caractères retournée à la console. comme vous pouvez le voir, le \n est bel et bien là:
Username is required\nPassword is required\nEmail is required\nPhone is required\nCardnumber is required
Cependant, il se présente comme ceci:
Pourquoi est-ce arrivé? Je pense qu'il peut avoir quelque chose à voir avec le type de données, qu'il est renvoyé de $.ajax
if (canAjax && !try_ajax) {
e.preventDefault();
$.ajax({
type: "POST",
url: "mobilesubmit.php",
data: {"use_ajax": true, "formdata": $("#register_form").first().serializeArray()},
success: function(data) {
//This stupid thing should make new lines!
alert(data);
console.log(data);
},
error: function (request, status, error) {
try_ajax = true;
$("#register_form").submit();
}
});
}
source d'informationauteur Radley Sustaire
Vous devez vous connecter pour publier un commentaire.
Si votre journal de la console est de montrer
\n
plutôt que d'une nouvelle ligne, puis il signifie la\
est échappé dans la chaîne d'origine...Comparer
Solution
utilisation
.replace()
pour échanger votre\n
avec des caractères de saut de ligneLa cause la plus probable est que votre code PHP est de s'échapper de la barre oblique inverse en ajoutant une barre oblique inverse devant elle. Par le temps qu'il arrive à votre code JS, c'est en fait
Vous pouvez consulter le raw réponse dans le réseau de l'écran de votre débogueur. Si vous essayez de l'afficher dans la console, il va afficher le résultat mis en forme au lieu de la sortie brute.
Double-vérifier votre méthode de sérialisation JSON dans votre code PHP et assurez-vous il fait ce que vous attendez avec le \n.
essayez d'ajouter un espace après \n .Il devrait fonctionner
IE11 inspecter montre le même problème sur un asp.net généré hiddenfield - il
affiche sa valeur en tant que valeur="test de la ligne 1\ntest de la ligne 2"
UT contient en fait
value="test line 1\\ntest line 2"
À l'aide de la
element.value.replace(/\\n/g,"\n")
sur elle, puis affiche la bonne ligne espacées de chaîne dans un javascript
alert()
Merci Billy - enregistré heures de chagrin