2016-07-08 5 views
-4

I-Bereich haben einen Text löschen zu machen:Weg zu Backspace ganze Wörter auf einmal

<textarea type="input" id="txtText">Hello+world-how*are+you</textarea> 

Ich möchte einen Weg für Backspace jedes Mal löschen es ein ganzes Wort geklickt wird mit Javascript oder Angular js. Wenn ich die Rücktaste drücke, möchte ich, dass sie durch Operatoren geteilt wird und am Ende gelöscht wird. Die ersten Backspaces im obigen Beispiel löschten 'Sie', dann 'sind' und dann 'wie' und so weiter. Aber wenn die Maus auf "Welt" ist, dann löscht sie zuerst "Welt" und dann "Hallo". Hier

+2

Warum '+' als Trenner? Und Sie sollten "contenteditable" nicht bei 'textarea' benötigen. –

+0

Etwas zu beginnen: http://jsfiddle.net/praveen_jegan/63jY6/ – Weedoze

+2

Oder Sie können STRG + Rücktaste verwenden und es tut was Sie wollen – Weedoze

Antwort

0

ist eine Lösung, als verwendet das data Attribut für Änderungen anzupassen: jsFiddle

jQuery('#EditableDiv').keyup(function(e) { 
 
    if (jQuery(e.target).text().length < jQuery(e.target).attr("data-value").length) { 
 
    var data = jQuery(e.target).attr("data-value").split(" "); 
 
    var text = jQuery(e.target).text().split(" "); 
 
    for (var a = 0; a < data.length; a++) { 
 
     if (text[a] != data[a]) { 
 
     text.splice(a, 1); 
 
     break; 
 
     } 
 
    } 
 
    jQuery(e.target).text(text.join(" ")); 
 
    } 
 
    jQuery(e.target).attr("data-value", jQuery(e.target).text()); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="EditableDiv" contenteditable="true" data-value="Hello, how are you" class="size">Hello, how are you</div>

Verwandte Themen