Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML] textarea dlugosc lini?
Forum PHP.pl > Forum > Przedszkole
matx132
Witam,
chciałem sie dowiedzieć czy jest taka możliwość w textarea że textarea sie nie powiększa
tzn chodzi mi o szerokośc aby nie pokazywał się suwak tylko przeszedł do nastepnej lini
czy idzie takie coś zrobic??(nie chce \n\r lub br) chciałbym aby nie ucinał on też zdan
Shili
W jakim sensie?

Jeśli wpiszesz ciąg bez spacji, to normalnie, że pokaże się suwak. Jeśli ciąg jest ze spacjami, to samo powinno przeskoczyć do linii niżej. Chodzi o to pierwsze?
matx132
tak chodzi oto pierwsze
powiedzmy ze moze być dodany też <br>
tylko nie wiem jak:D
bo jak policzę i np pewnym ciągu dam <br> to możne sie okazać ze podzielę inny wyraz który nie powinien być podzielony
Shili
To nie bardzo jest możliwość sensownego zrobienia czegoś takiego.
Jedyne co możesz zrobić, to sprawdzać czy jakieś słowo ma więcej niż dozwolona liczba znaków i po tej dozwolonej liczbie wpychać spację.

Minusów jest kilka:
1) Możesz rozwalić w ten sposób linki
2) Żeby to normalnie działało wymaga js
matx132
a jak można było by to zrobić w js??
chyba że bedę sprawdzał czy jest http w wyrazie jeśli jest zostawiam jeśli nie daje spację
Shili
Na szybko, bo już późno (to tylko zarys, że się da, żeby to jakoś sensownie używać trzeba by było to trochę (trochę bardzo) zoptymalizować). No i bez sprawdzania adresów.

  1.  
  2. function check(id)
  3. {
  4. var text = document.getElementById(id).value;
  5. var maxword = 10;
  6. var tmp = 0;
  7. for(i=0, count=text.length; i<count; i++) {
  8. if(text[i] == ' ') {
  9. tmp = 0;
  10. }
  11. else {
  12. tmp += 1;
  13. if(tmp == 11) {
  14. value = text.substr(0,i) + ' ' + text.substr(i, count);
  15. text = value;
  16. document.getElementById(id).value = value;
  17. }
  18. }
  19. }
  20. }
  21.  
  22.  
  23.  
  24. <textarea onkeypress="check(this.id);" id="text"></textarea>


Prócz optymalizacji trzeba będzie pokombinować ze zdarzeniami, bo onkeypress w przypadku wklejonego tekstu w niczym nie pomoże. Onkeyup i onkeydown są tutaj użyteczne, ale mogą być mocno obciążające. setInterval będzie za to sprawdzał nawet jeśli nie będzie trzeba.

Pewnie da się to zrobić miliony razy lepiej, ale za późno już dla mnie winksmiley.jpg
Poza tym osobiście bym zostawiła z paskiem.
matx132
jak zostawie z paskiem to niestety theme mi sie rozwali:D
ferrero2
Cytat
chyba że bedę sprawdzał czy jest http w wyrazie jeśli jest zostawiam jeśli nie daje spację

Dokładnie - to jest najlepsze rozwiązanie - na Javie to jest mnóstwo pisania i mnóstwo warunków, a tutaj jeśli ustawiasz szerokość textboxa na np 200px to sprawdzasz ile Ci wejdzie literek i zapisujesz do zmiennej ciąg znaków minus 1 oraz sprawdzasz czy nie zawiera http, i tutaj się warunki kończą - nie ma tak długich słow - ewentualnie mogą to być linki (gdzie można napisać nad textboxem, że przy wklejaniu linków proszę dodawać człon http ( i już sprawa załatwiona w 5 linijkach kodu).

Pozdrawiam
Shili
Cytat
nie ma tak długich słow
Nie znasz chyba pomysłowości co "życzliwszych" internautów, zwłaszcza tych, którym serwis podpadł z jakiegoś powodu. Ci tworzą słowa nawet kilkuset literowe jak się uprą. I przed tym trzeba się zabezpieczyć, z tym że nawet jeśli na poziomie js, to php również.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.