web-dev-qa-db-fra.com

Entrez la clé dans textarea

J'ai un textareaname__, sur chaque Enter touche enfoncée dans textareaJe veux que la nouvelle ligne commence par une puce say (*). Comment s'y prendre ?

Non jQuery s'il vous plaît.

Je peux observer pour le Enter clé, après ça!? Devrais-je avoir la valeur entière de textareaname__, y ajouter * et remplir à nouveau le textareaname__?

19
sat

Vous pouvez faire quelque chose comme ça:

<body>

<textarea id="txtArea" onkeypress="onTestChange();"></textarea>

<script>
function onTestChange() {
    var key = window.event.keyCode;

    // If the user has pressed enter
    if (key === 13) {
        document.getElementById("txtArea").value = document.getElementById("txtArea").value + "\n*";
        return false;
    }
    else {
        return true;
    }
}
</script>

</body>

Bien que le caractère de la nouvelle ligne, en appuyant sur Entrée, soit toujours présent, vous pouvez commencer à obtenir ce que vous voulez.

24
williamtroup

Ajoutez simplement ce genre à votre textarea.

onkeydown="if(event.keyCode == 13) return false;"
15

Vous devez prendre en compte le cas où l'utilisateur appuie sur Entrée au milieu du texte, pas seulement à la fin. Je suggère de détecter la touche Entrée dans l'événement keyup, comme suggéré, et d'utiliser une expression régulière pour garantir que la valeur correspond à vos besoins:

<textarea id="t" rows="4" cols="80"></textarea>
<script type="text/javascript">
    function formatTextArea(textArea) {
        textArea.value = textArea.value.replace(/(^|\r\n|\n)([^*]|$)/g, "$1*$2");
    }

    window.onload = function() {
        var textArea = document.getElementById("t");
        textArea.onkeyup = function(evt) {
            evt = evt || window.event;

            if (evt.keyCode == 13) {
                formatTextArea(this);
            }
        };
    };
</script>
7
Tim Down

Mon scénario est lorsque l'utilisateur appuie sur la touche Entrée en tapant dans textarea, je dois inclure un saut de ligne.J'ai réalisé cela en utilisant le code ci-dessous ...... J'espère que cela aidera quelqu'un .....

function CheckLength()
{
    var keyCode = event.keyCode
    if (keyCode == 13)
    {
        document.getElementById('ctl00_ContentPlaceHolder1_id_txt_Suggestions').value = document.getElementById('ctl00_ContentPlaceHolder1_id_txt_Suggestions').value + "\n<br>";
    }
}
3
MuraliKrishna

Vous pouvez faire quelque chose comme ça:

$("#txtArea").on("keypress",function(e) {
    var key = e.keyCode;

    // If the user has pressed enter
    if (key == 13) {
        document.getElementById("txtArea").value =document.getElementById("txtArea").value + "\n";
        return false;
    }
    else {
        return true;
    }
});
<textarea id="txtArea"></textarea>

0
QuyPham