33 Stimmen

Eingabetaste im Textfeld

Ich habe eine textarea An jedem Enter Taste gedrückt in textarea Ich möchte, dass eine neue Zeile mit einem Aufzählungszeichen (*) eingeleitet wird. Wie kann ich das machen?

Bitte kein jQuery.

Ich kann beobachten, dass die Enter Schlüssel, nach dem !? Sollte ich den gesamten Wert von textarea und fügen Sie * an und füllen Sie erneut die textarea ?

33voto

williamtroup Punkte 11971

Sie könnten etwa so vorgehen:

<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>

Der Zeilenvorschub durch das Drücken der Eingabetaste ist zwar immer noch vorhanden, aber es ist ein Anfang, um das Gewünschte zu erreichen.

17voto

Fügen Sie einfach diesen Tad in Ihre Textarea ein.

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

8voto

Tim Down Punkte 304837

Sie müssen den Fall berücksichtigen, dass der Benutzer die Eingabetaste in der Mitte des Textes und nicht nur am Ende drückt. Ich würde vorschlagen, die Eingabetaste in der keyup und verwenden Sie einen regulären Ausdruck, um sicherzustellen, dass der Wert Ihren Anforderungen entspricht:

<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>

3voto

MuraliKrishna Punkte 31

Mein Szenario ist, wenn der Benutzer die Eingabetaste während der Eingabe in textarea ich einen Zeilenumbruch einschließen müssen.I erreicht dies mit dem folgenden Code......Hoffe, es kann jemand hilft......

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>";
    }
}

1voto

QuyPham Punkte 19

Sie könnten etwa so vorgehen:

$("#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>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X