Атрибут dirname тега <textarea>


Описание

Атрибут dirname в теге <textarea> позволяет отправлять информацию о направлении текста (direction) вместе с данными формы. Это полезно для многоязычных форм, где текст может быть написан как слева направо (LTR), так и справа налево (RTL).

Пример использования:
<form action="/submit" method="post"> <textarea name="message" dirname="message.dir"> يمكنك كتابة نص بالعربية هنا </textarea> <button type="submit">Отправить</button> </form>

Как это работает:

  • При отправке формы добавляется скрытое поле с указанным именем (message.dir в примере)
  • Значение поля будет "ltr" (left-to-right) или "rtl" (right-to-left)
  • Определяется автоматически на основе содержимого textarea
  • Может быть переопределено атрибутом dir самого элемента

Пример отправляемых данных:

// При отправке формы из предыдущего примера: message=يمكنك+كتابة+نص+بالعربية+هنا message.dir=rtl

Рекомендации:

  • Используйте для форм с возможностью многоязычного ввода
  • Сочетайте с атрибутом dir="auto" для автоматического определения
  • На сервере проверяйте значение direction перед обработкой текста
  • Учитывайте при отображении сохранённых данных

Ограничения:

  • Поддерживается не всеми браузерами (проверяйте совместимость)
  • Не работает с AJAX-формами без дополнительной обработки
  • Может некорректно определять направление для смешанного текста
  • Требует поддержки на стороне сервера

Пример с явным указанием направления:

<textarea name="hebrew-text" dirname="hebrew-text.dir" dir="rtl"> טקסט בעברית </textarea> <!-- При отправке: --> hebrew-text=טקסט+בעברית hebrew-text.dir=rtl

Советы по реализации на сервере:

<?php // PHP пример обработки $text = $_POST['message']; $direction = $_POST['message.dir'] ?? 'ltr'; echo '<div dir="' . htmlspecialchars($direction) . '">'; echo htmlspecialchars($text); echo '</div>'; ?>

Примечание: Для сложных сценариев работы с двунаправленным текстом рассмотрите:

  • Библиотеки определения направления текста
  • Специальные алгоритмы для смешанного текста (bidi-алгоритмы)
  • Храните информацию о направлении в базе данных