Mam prosty obszar tekstowy w formie takiej jak ta:
<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink">
<?php if($siteLink_val) echo $siteLink_val; ?>
</textarea>
W tym obszarze tekstowym wciąż pojawiają się dodatkowe białe znaki . Kiedy zakładam kartę, mój kursor jest jak na środku obszaru tekstowego, a nie na początku? Jakie jest wyjaśnienie?
value
atrybutu zamiast dodawać tekst wewnątrz tagów.Cóż, wszystko pomiędzy
<textarea>
i</textarea>
jest używane jako domyślna wartość dla pola tekstowego. W twoim przykładzie jest trochę białych znaków. Spróbuj to wszystko wyeliminować.źródło
Otwórz (i zamknij!) Tagi PHP zaraz po tagach i przed nimi
textarea
:źródło
W skrócie:
<textarea>
należy natychmiast zamknąć w tej samej linii, w której się zaczął.Ogólna praktyka: spowoduje to dodanie podziałów wiersza i spacji używanych do wcięcia w kodzie.
Prawidłowa praktyka
źródło
Zasadniczo powinno być
Jeśli są jakieś predefiniowane spacje, powiedzmy ze względu na formatowanie kodu, jak poniżej
Spacje wyświetlane kropkami są dodawane przy każdym przesyłaniu.
źródło
Wszelkie odstępy między znacznikami otwierania i zamykania obszaru tekstowego będą traktowane jako białe znaki. Tak więc w przypadku powyższego kodu poprawną metodą będzie:
źródło
Innym rozwiązaniem byłoby użycie javascript:
Oto co zrobiłem. Usunięcie białych znaków i podziałów linii w kodzie powoduje, że linia jest za długa.
źródło
Aby wyglądał nieco czystiej, rozważ użycie operatora trójskładnikowego:
źródło
Przenoszenie ...> w dół działa dla mnie.
źródło
Mam ten sam problem, a rozwiązanie jest bardzo proste: nie zaczynaj nowej linii! Chociaż niektóre z poprzednich odpowiedzi mogą rozwiązać problem, pomysł nie jest jasno określony. Ważne jest zrozumienie, aby pozbyć się niechcianych miejscach, nigdy nie rozpocząć nowy wiersz tuż po tagu początkowego.
Poniższy sposób jest NIEPRAWIDŁOWY i pozostawi wiele niepożądanych miejsc przed treścią tekstu:
PRAWIDŁOWY SPOSÓB na to:
źródło
Upewnij się, że później nie ma podziału wiersza ani spacji, aby upewnić się, że nie ma białych znaków ani tabulacji, po prostu skopiuj i wklej ten kod :) Miałem go naprawić
źródło
Ponadto: znacznik textarea pokazuje spacje dla nowych linii, tabulatorów itp. W kodzie wielowierszowym.
źródło
zachowaj kod textarea bez dodatkowych białych spacji w środku
ponadto, jeśli zobaczysz dodatkowe puste linie, istnieje rozwiązanie w języku meta:
wypisze linie bez dodatkowych pustych linii, oczywiście zależy to od linii kończących się na „\ n”, „\ r \ n” lub „” - proszę dostosować
źródło
Obszar tekstowy pokazuje tajemnicze spacje, ponieważ w tagach istnieje prawdziwa przestrzeń.
<textarea> <php? echo $var; ?> </textarea>
po usunięciu tych dodatkowych spacji między tagami rozwiąże problem w następujący sposób.<textarea><php? echo $var; ?></textarea>
źródło
Jednym ze sprawdzonych rozwiązań jest dodanie stylu
white-space: normal;
do obszaru tekstowego, ponieważ czasami nie jest możliwe wyeliminowanie wszystkich białych znaków (na przykład, gdy chcesz, aby kod był zgodny ze wskazówkami dotyczącymi kodowania, co wymaga dodania tabulatorów, białych znaków i podziałów wiersza)Należy pamiętać, że domyślnym obszarem tekstowym, przynajmniej w chrome, jest:
white-space: pre-wrap;
źródło
Jeśli nadal chcesz używać wcięcia, zrób to po otwarciu
<?php
tagu, tak jak poniżej:źródło
Wiem, że jest późno, ale może pomóc innym.
użyj tego, gdy wymagane jest wcięcie dokumentu.
to samo pytanie
źródło
Jestem przeciwny kodowi HTML pomieszanemu z kodem PHP.
Spróbuj jednak:
źródło
<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php
i?></textarea>
upewnić się, że jest naprawdę czysty. Czy mogę również zapytać, dlaczego popierasz HTML w PHP?Po prostu zdefiniuj swój i swój zamknięty tag w tej samej linii.
źródło
Ponadto, gdy mówisz, że kursor znajduje się na „środku” obszaru tekstowego, myślę, że możesz również mieć dodatkowe dopełnienie lub wyrównanie tekstu: środek określone gdzieś w twoim CSS.
źródło
Najpierw upewnij się, że $ siteLink_val nie zwraca wartości jako spacji. Element <textarea> domyślnie ma pustą wartość, więc jeśli zmienna, z której się powtarzasz, ma spacje, to od razu masz problem.
Aby kod był absolutnie najczystszy, sugerowałbym, abyś mógł zrobić coś takiego, pozwalając na większą elastyczność później. Zrobiłem funkcję, która zwraca albo NULL, jeśli zmienna nie jest obecna (co wydaje się celem w oryginalnym poście), a wartość bezwzględna w przeciwnym razie. Po upewnieniu się o zawartości zmiennej spróbuj:
A następujący kod w twoim obszarze tekstowym będzie teraz brzmiał:
Zakłada się, że instalacja PHP jest skonfigurowana do wywoływania zmiennych krótkich, co widać w skróconych znacznikach „<? =?>”. Jeśli nie możesz wydrukować w ten sposób, pamiętaj, aby poprzedzić kod PHP słowem „<? Php” i zamknąć słowem „?>”.
Unikaj podziałów linii pomiędzy <textarea>, ponieważ może to stworzyć potencjał błędnych znaków.
Sprawdź także CSS, aby upewnić się, że nie ma reguły wypełniania wypychającej tekst do wewnątrz.
Ponadto określasz wartość cols i wierszy w obszarze tekstowym, a następnie projektujesz szerokość i wysokość. Reguły te przynoszą efekt przeciwny do zamierzonego i będą powodować niespójne efekty wizualne. Trzymaj się albo określając rozmiar poprzez styl (zalecam nadanie elementowi klasy), albo wiersze / cols.
źródło