2009-05-26 7 views
2

J'ai une zone de texte INPUT. Comme quelqu'un tape dans la zone de texte INPUT, j'en ai besoin pour ajouter/ajouter une valeur TEXTAREA.Ajout de l'entrée INPUT à TEXTAREA comme étant tapé dans JQuery


Dire les types d'utilisateur '12345' dans la zone de texte.

La zone de texte (valeur par défaut = "Commentaire:") ajoutera automatiquement: "Commentaire: 12345". Ajout de '12345' en cours de frappe.

Répondre

1

En supposant area est l'identifiant de votre textarea et text l'identifiant de votre zone de texte,

$(function() { 

    var areaText = $('#area').val(); 

    $('#text').bind('keyup keypress', function() { 
     $('#area')[0].value = areaText + $(this)[0].value; 
    }); 

}); 
+0

Fonctionne bien - merci pour l'exemple aussi. – Ricky

0
$('#your_input').bind('keypress', function(event) { 
    var char_code = event.which ? event.which : window.event.keyCode; 
    var char = String.fromCharCode(char_code); 
    $('#your_textarea').value += char; 
}); 
+0

backspaces don, le travail t comme prévu, mais il est proche –

+0

Cela me donne: Uncaught SyntaxError: Fin inattendue de l'entrée – Ricky

+0

Erm, désolé. A laissé un code de terminaison. Ça devrait être mieux maintenant. Pour les backspaces, il faudrait un peu plus d'argent. – chaos

1

Russ Cam est manquant un cas de bord - vous pouvez faire glisser et déposer du texte dans et dans les champs de saisie en en surbrillance et en faisant glisser, dont son code ne tient pas compte.

Ci-dessous le code qui couvre ce cas:

$(function() { 

    var areaText = $('#area').val(); 

    $('#text').bind('keyup keypress drop', dropfunction() { 
     $('#area')[0].value = areaText + $(this)[0].value; 
    }); 

}); 

Cela dit, il y a encore une autre affaire de bord, qui est la suppression et la manipulation via le menu contextuel. En ce moment, je ne vois pas un moyen de détecter la sélection de l'interaction du menu contextuel ... Vous pouvez le désactiver si cela est important en utilisant le code suivant

$('#text').bind('contextmenu', function() { 
    return false 
}); 
Questions connexes