2017-04-23 5 views
0

Wenn Benutzer etwas schreiben, manchmal verlassen sie zwei oder mehr Leerzeichen in einer Reihe, gibt es eine Möglichkeit, dies mit jQuery zu verhindern?JQuery entfernen mehrere eingeben, wenn Benutzer in contenteditable eingeben

Zum Beispiel:

Ich will nicht Benutzer die Eingabe wie folgt ermöglichen:

Hi Dear, 






This is some text. 



Second text 




Thirt text and ..... 

So müssen wir löschen mehrere Leerzeichen Zeile wie folgt aus:

Hi Dear, 

This is some text. 

Second text. 

Thirt text and.... 

Ich denke, wir können es mit jquery keyup Funktion mit Regex wie

$(document).ready(function() { 
    $("body").on("keyup", ".text", function() { 
     var text = $(".text"); 
     text = text.replace(/(\r\n|\r|\n){2}/g, '$1').replace(/(\r\n|\r|\n){3,}/g, '$1\n'); 
    }); 
}); 
tun

Gibt es eine Möglichkeit, das zu tun? Ich kann dies mit PHP Regex tun. Aber gibt es eine Möglichkeit, dies zu tun, wenn der Benutzer den Text ohne die Notwendigkeit für PHP schreibt?

Ich möchte sagen, dass es möglich ist, beim Schreiben von Text keine zusätzlichen Leerzeichen zuzulassen.

<div class="text" contenteditable="true" placeholder="User can write text here More than three sub-spaces will not be allowed. "></div> 
+0

Der von Ihnen bereitgestellte Codeausschnitt funktioniert einwandfrei. Sie müssen den Text wahrscheinlich wieder in contenteditable einfügen, nachdem Sie mehrere Eingaben entfernt haben ... '' '$ (". Text "). Html (text)' ''. Was ist das Problem, vor dem Sie stehen? – Santosh

+0

Ich habe die DEMO aktualisiert. Hier ist der Link https://codepen.io/anon/pen/KmMbGq. – Santosh

Antwort

0

Tun Sie es so etwas wie dieses:

var lastKey = ''; 
$("#id").keypress(function(e){ 
    if(e.which == 13 && lastKey == 13) 
     e.preventDefault() 
    lastKey = e.which; 
}); 

Es prüft für 2 aufeinander folgende Enter-Taste drückt, und ignoriert die zweite ein. Es ist schneller und viel sauberer als mit Regex.

0

jquery mit text funktioniert nicht auf textarea, wie Sie denken würde, die Verwendung von Jquery val es immer funktioniert und verwenden Ereignis blur es feuert eine Zeit, wenn der Benutzer textarea verlässt Sie auch change verwenden können, wenn Sie hier wollen, ist die Arbeitscode,

$('.text').on('blur' , function(){ 
     $(this).val($(this).val().replace(/\n\n+/g , "\n")) 
}) 
Verwandte Themen