2010-03-05 7 views
0

Comment puis-je passer la chaîne HTML <br> de ce formulaire HTML à la DIV en utilisant Jquery?Valeur du champ de formulaire Jquery

formulaire HTML est:

<form action="" id="submit_wall" name="submit_wall" method="post"> 
<textarea cols="50" rows="5" id="message_wall"></textarea> 
<button type="submit" id="fst" class="cfst">send</button> 
</form> 

<div id="wall"></div> 
<div class="msg"></div> 

Code Jquery:

$(document).ready(function(){  
$("form#submit_wall").submit(function() { 
var message_wall = $('#message_wall').attr('value'); 

$("div#wall").append('<div class=msg>'+ message_wall +'</div>'); 
return false; 
}); 
}); 

J'essaie en utilisant .html() mais je continue à recevoir un message d'erreur.

+0

Pouvez-vous ajouter l'erreur que vous obtenez. De plus, votre HTML ne fait pas référence à une div avec l'identifiant "Wall". –

+0

Il n'y a pas d'attribut de "valeur" pour la zone de texte. Qu'est-ce que vous essayez d'accomplir. –

Répondre

1

Voici un exemple de learningjquery.com

$(document).ready(function() { 
    $('#comment').one('focus',function() { 
$('#comment').parent().after('<div id="preview-box"><div class="comment-by">Live Comment Preview</div><div id="live-preview"></div></div>'); 
    }); 
    var $comment = ''; // that's two single quotation-marks at the end 
    $('#comment').keyup(function() { 
$comment = $(this).val(); 
$comment = $comment.replace(/\n/g, "<br />").replace(/\n\n+/g, '<br /><br />').replace(/(<\/?)script/g,"$1noscript"); 
$('#live-preview').html($comment); 
    }); 
}); 

Ce qui est très proche de ce que vous essayez de faire.

+0

Merci Keyne! Cet exemple est très utile. – Sergio

+0

Un autre moyen rapide est d'utiliser 'white-space: pre;' dans le CSS pour le div auquel il est ajouté. Alors vous ne devez pas faire
remplacements. Alors votre code original devrait produire le résultat désiré. – Lobstrosity

0

Première, comme durilai a commenté, il n'y a pas div avec un ID de wall, ce qui signifie que même si votre gestionnaire soumettre travaille, append ne va pas à ajouter car il n'y a rien à ajouter à.

Deuxième, même si vous avez dit action="" sur la forme, la forme sera toujours présenter et faire ce qui ressemble à un rechargement de la page parce que vous n'êtes pas empêchez l'action par défaut dans votre gestionnaire soumettre. Une solution rapide consiste à ajouter return false; comme dernière ligne du gestionnaire. Une autre solution consiste à réécrire comme:

$("form#submit_wall").submit(function(event) { 
    event.preventDefault(); 

    $("div#wall").append("<div class='msg'>"+ $("#message_wall").val() + "</div>"); 
}); 
+0

Il y a deux DIV dans le code HTML mais j'ai oublié de le mettre dans ma question. Ok, maintenant je l'édite. J'ai essayé avec 'var message_wall = $ (' # message_wall '). Val();' mais il n'y a pas de saut de ligne html '
' dans la DIV comme dans le champ de texte du formulaire. – Sergio

Questions connexes