Атрибут 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-алгоритмы)
- Храните информацию о направлении в базе данных