• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed javascript+wywalenie entera z textarea

Object Storage Arubacloud
0 głosów
517 wizyt
pytanie zadane 26 czerwca 2015 w JavaScript przez niezalogowany
zamknięte 27 czerwca 2015

jak wywalić enter z textarea?

Oto mój kod:

<textarea id="poletxt" name="tresc" rows="5" cols="50" onkeypress="kpr()"></textarea>
<script>

function kpr() {
    var key = window.event.keyCode;

    // If the user has pressed enter
    if (key == 13) {

        var txt = document.getElementById("poletxt");
        txt.replace(/\n$/, "");
       // alert("ddd");
        key = false;
        return false;
    }
}

</script>

 

komentarz zamknięcia: OT

2 odpowiedzi

0 głosów
odpowiedź 26 czerwca 2015 przez rafal.budzis Szeryf (85,260 p.)
wybrane 26 czerwca 2015
 
Najlepsza

można przechwycić event dla textarea wtedy return false niepozwoli się wstawić więc nie bedziesz musiał usuwać. Jeśli chcesz usuwać to zrobiłeś prawie dobrze zastąpiłeś enter ale nigdzie tej wartości nie przypisałeś

var txt = document.getElementById("poletxt");//zacznijmy od tego ze pobrałeś tu element HTML a nie wartość tekstową
txt.replace(/\n$/, "");//tutaj zamieniłeś ale nigdzie nie przypisałeś wartości która została zwrócona

powinno być tak

var txt = document.getElementById("poletxt").value;
document.getElementById("poletxt").value = txt.replace(/\n$/, "");

 

komentarz 26 czerwca 2015 przez niezalogowany
Dziękuję, działa jak należy :)
0 głosów
odpowiedź 26 czerwca 2015 przez Comandeer Guru (601,110 p.)

Zamiast keypress proponuję input - to specjalne zdarzenie służące obsługiwaniu zmiany zawartości pól formularza. Warto także zauważyć, że definiowanie obsługi zdarzeń w kodzie HTML jest uważane za złą praktykę i tego typu rzezcy należy przenieść do JS przy pomocy elem.addEventListener: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

Natomiast co do już samej Twojej funkcji: w txt nie masz zawartości pola, ale samo pole. Do zawartośći trzeba się dobrać (txt.value). No i musisz pamiętać, że stringi w JS są niemutowalne. Co to oznacza? Że nie da się zmienić ich wartości - da się je jedynie nadpisać, zatem samo txt.value.replace nic nie zmieni (stworzy to nowy string, którego do niczego nie przypisujesz).

Zastanawiam się także nad wyrażeniem regularnym: jeśli chcesz się pozbywać nowych linii, to nie wiem po co Ci w tym regexie $. To złapie tylko nową linię na samym końcu. Jeśli chcesz łapać wszystkie, to w gruncie rzeczy nawet nie musisz używać regexa, tylko po prostu \n. Natomiast jeśli ma być usuwany tylko dodawany na końcu znak nowej linii, to tak - wówczas taki regex się przyda.

Ostatecznie kod wyglądałby mniej więcej tak: http://jsfiddle.net/Comandeer/xok2pwj9/

 

BTW nie baw się window.event, bo w Firefox nie działa! To jest wymysł IE, do którego Webkit się przystosował. Jedyny sprawdzony sposób na dostanie się do zdarzenia to mechanizm automatycznego przekazywania go jako 1. parametr, co nie działa w przypadku atrybutów [on…], przy których trzeba to zrobić samemu:

<button onclick="click(event)">Klik</button>

 

komentarz 26 czerwca 2015 przez niezalogowany
Dziekuję, bardzo się przyda tylko muszę to dogłębnie przeanalizować.

Podobne pytania

+2 głosów
1 odpowiedź 256 wizyt
pytanie zadane 29 grudnia 2022 w JavaScript przez mateusz45 Gaduła (3,240 p.)
0 głosów
0 odpowiedzi 124 wizyt
pytanie zadane 25 lipca 2020 w JavaScript przez Avernis Nałogowiec (27,400 p.)
+1 głos
3 odpowiedzi 188 wizyt
pytanie zadane 23 czerwca 2020 w JavaScript przez Grzegorzko Obywatel (1,110 p.)

92,563 zapytań

141,413 odpowiedzi

319,590 komentarzy

61,948 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...