Intereting Posts
Как проверить, существует ли почтовый адрес в YMail, Gmail и т. Д.? Программно отключить определенные функции PHP для тестирования Должен ли я использовать mysqli_real_escape_string или использовать подготовленные инструкции? Лучший способ разбора недопустимого HTML в PHP Передача массива параметров по сравнению с отдельными параметрами функции в PHP? Предупреждение: require_once (): http: // оболочка отключена в конфигурации сервера allow_url_include = 0 Codeigniter передает данные из контроллера для просмотра Отображение массива как древовидной структуры в php Как объединить столбцы с Laravel 4 Racquent? Загрузка изображения Codeigniter будет загружаться только в один каталог утвердить возраст до регистрации пользователя, чтобы проверить, будет ли ГЭС в течение определенного возраста с использованием mvc Система голосования с jQuery, PHP и Smarty Я не могу запросить с помощью% в коллекции phalcon Есть ли способ использовать пакеты загрузки Composer без документов и тестирования? PHP / JSON – объект stdClass

Почему текстовое пространство заполнено таинственными белыми пространствами?

У меня есть простая текстовая область в форме:

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"> <?php if($siteLink_val) echo $siteLink_val; ?> </textarea> 

Я продолжаю получать лишнее пространство в этом текстовом поле . Когда я ввожу в него мой курсор, как в середине текстового поля, а не в начале? Какое объяснение?

Посмотрите внимательно на свой код. В нем уже есть три разрыва строки и тонна пробела перед </textarea> . Сначала удалите их, чтобы больше не было разрывов строк между тегами. Возможно, это уже трюк.

Ну, все между <textarea> и </textarea> используется как значение по умолчанию для вашего поля textarea. В вашем примере есть пробелы. Попытайтесь устранить все это.

Открывайте (и закрывайте!) Свои теги PHP сразу после и до, ваши теги textarea :

 <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php if($siteLink_val) echo $siteLink_val; ?></textarea> 

В основном это должно быть

 <textarea>something here with no spaces in the begining</textarea> 

Если есть некоторые предопределенные пробелы, скажем, из-за форматирования кода, как показано ниже

 <textarea>....... ....some_variable </textarea> 

Пространства, показанные точками, продолжают добавляться к каждой отправке.

Короче говоря, <textarea> должен быть немедленно закрыт в той же строке, где он был запущен.


Общая практика: это приведет к разрыву строк и пробелов, используемых для отступов в коде.

 <textarea id="sitelink" name="sitelink"> </textarea> 

Правильная практика

 <textarea id="sitelink" name="sitelink"></textarea> 

Другая работа вокруг будет заключаться в использовании javascript:

 //jquery $('textarea#someid').html($('textarea#someid').html().trim()); //without jquery document.getElementById('someid').innerHTML = document.getElementById('someid').innerHTML.trim(); 

Это то, что я сделал. Удаление пробелов и разрывов строк в коде делает линию слишком длинной.

Чтобы это выглядело немного чище, подумайте об использовании тернарного оператора:

 <textarea><?=( $siteLink_val ? $siteLink_val : '' );?></textarea> 

Любое пространство между текстовыми и открывающимися тегами будет рассматриваться как пробел. Итак, для вашего вышеуказанного кода правильный путь будет:

 <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php if($siteLink_val) echo $siteLink_val; ?></textarea> 

Пожалуйста, убедитесь, что после этого нет полосы или пробела, убедитесь, что нет пробелов или вкладок, просто скопируйте и вставьте этот код 🙂 Я исправил это для вас

 <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php if($siteLink_val) echo trim($siteLink_val);?></textarea> 

Я против HTML-кода, смешанного с PHP-кодом.

Однако попробуйте следующее:

 <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"> <?php if($siteLink_val) echo trim($siteLink_val); ?> </textarea> 

Текстовая область показывает таинственные пространства, потому что в тегах существует реальное пространство. <textarea> <php? echo $var; ?> </textarea> <textarea> <php? echo $var; ?> </textarea> после удаления этих лишних пробелов между тегами решает проблему, как показано ниже. <textarea><php? echo $var; ?></textarea>

Одним из решений, которое сработало для меня, является добавление стиля white-space: normal; в текстовое поле, потому что порой невозможно исключить все пробелы (например, если вы хотите, чтобы ваш код соответствовал вашим правилам кодирования, которые требуют добавления вкладок, пробелов и разрывов строк)

Обратите внимание, что значение по умолчанию для textarea, по крайней мере, в хроме: white-space: pre-wrap;

 <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink" ><?php if($siteLink_val) echo $siteLink_val; ?></textarea> 

Перемещение …> вниз работает для меня.

Я знаю его поздно, но могу помочь другим.

используйте это, когда требуется отступ документа.

 $('document').ready(function() { $('textarea').each(function(){ $(this).val($(this).val().trim()); } ); }); 

тот же вопрос

Кроме того, когда вы говорите, что курсор находится в «середине» текстового поля, это заставляет меня думать, что вы также можете иметь дополнительное дополнение или выравнивание текста: центр, определенный где-то в вашем CSS.

Сначала убедитесь, что ваш $ siteLink_val не возвращает пустое пространство в качестве значения. Элемент <textarea> по умолчанию имеет пустое значение, поэтому, если переменная, которую вы эхо, по какой-то причине имеет пробелы, есть проблема с самого начала.

Чтобы сделать код максимально чистым, я бы посоветовал вам сделать что-то подобное, давая некоторую гибкость позже. Я создал функцию, которая возвращает либо значение NULL, если переменная отсутствует (на что вы, похоже, нацелились в исходном сообщении), а абсолютное значение в противном случае. После того, как вы убедитесь в содержании переменной, попробуйте следующее:

 function build_siteLink_val() { if ( $siteLink_val ) { return $siteLink_val; } else { return ""; } } $output_siteLink_val = build_siteLink_val(); 

И следующий код в вашем текстовом поле теперь будет читать:

 <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?=$output_siteLink_val?></textarea> 

Это предполагает, что ваша установка PHP настроена для коротких вызовов переменных, как видно из сокращенных тегов «<? =?>». Если вы не можете выводить этот путь, не забудьте указать свой PHP-код «<? Php» и закрыть «?>».

Избегайте разрывов строк между <textarea>, потому что это может создать потенциал ошибочных символов.

Кроме того, проверьте свой CSS, чтобы убедиться, что нет правила заполнения, вставляющего текст внутрь.

Кроме того, вы указываете значение cols и rows в текстовом поле, а затем задаете ширину и высоту. Эти правила являются контрпродуктивными и приведут к непоследовательным визуальным эффектам. Придерживайтесь либо определения размера по стилю (я рекомендую дать элементу класс), либо строки / столбцы.

Кроме того: тег textarea показывает пробелы для новых строк, вкладок и т. Д. В многострочном коде.

сохранить код textarea без дополнительных пробелов внутри

кроме того, если вы видите дополнительные пустые строки, есть решение в метаязыке:

 <textarea> for line in lines: echo line.replace('\n','\r') endfor </textarea> 

он будет печатать строки без дополнительных пустых строк, конечно, это зависит от того, будут ли ваши строки заканчиваться на «\ n», «\ r \ n» или «» – пожалуйста, приспособите

Если вы все еще хотите использовать отступы, сделайте это после открытия <?php , например:

 <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php // <--- newline if($siteLink_val) echo $siteLink_val; // <--- indented, newline ?></textarea> 

Элемент Html может быть открытым тегом и тегами закрытия

 <textarea> ...Your code </textarea> 

если вы хотите использовать один тег, используя <tagName/>