پیش‌نمایش زنده (iframe sandbox) تمام‌صفحه
در حال بارگذاری پیش‌نمایش زنده...
<div class="radikalwp-form-count"><textarea class="radikalwp-form-count-area" rows="4" maxlength="300" placeholder="نظر خود را بنویسید..."><//textarea><span class="radikalwp-form-count-num" data-count>۰ / ۳۰۰<//span><//div>
.radikalwp-form-count { position: relative; max-width: 380px; }
.radikalwp-form-count-area {
  width: 100%;
  padding: 14px 16px 30px;
  font-family: inherit;
  font-size: 13.5px;
  line-height: 1.9;
  color: #1e293b;
  background: #fff;
  border: 1.5px solid #e2e8f0;
  border-radius: 14px;
  outline: none;
  resize: vertical;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.radikalwp-form-count-area:focus {
  border-color: #6366f1;
  box-shadow: 0 0 0 4px rgba(99, 102, 241, .13);
}
.radikalwp-form-count-num {
  position: absolute;
  bottom: 10px;
  left: 14px;
  font-size: 11px;
  color: #94a3b8;
  font-variant-numeric: tabular-nums;
}
.radikalwp-form-count-num.is-warn { color: #f59e0b; }
.radikalwp-form-count-num.is-full { color: #ef4444; font-weight: 700; }
// شمارنده زنده با هشدار رنگی نزدیک سقف
var MAX = 300;
var faDigits = ['۰','۱','۲','۳','۴','۵','۶','۷','۸','۹'];
function faNum(n) { return String(n).replace(/\d/g, function (d) { return faDigits[+d]; }); }
document.querySelectorAll('.radikalwp-form-count').forEach(function (wrap) {
  var area = wrap.querySelector('textarea');
  var num = wrap.querySelector('[data-count]');
  area.addEventListener('input', function () {
    var left = MAX - area.value.length;
    num.textContent = faNum(area.value.length) + ' / ' + faNum(MAX);
    num.classList.toggle('is-warn', left <= 50 && left > 0);
    num.classList.toggle('is-full', left === 0);
  });
});

درباره این اسنیپت

متن‌های چندخطی با شمارنده زنده کاراکتر در گوشه پایین که با نزدیک شدن به سقف، رنگش نارنجی و در سقف قرمز می‌شود. ارتفاع ثابت و اسکرول داخلی دارد تا چیدمان صفحه با متن بلند نپرد. برای دیدگاه‌ها، توضیح محصول و فیلد بیو مناسب است. سقف با ویژگی maxlength و عدد نمایش داده‌شده همگام است.

پرسش‌های متداول

مقدار maxlength در HTML و ثابت MAX در جاوااسکریپت را هم‌زمان تغییر دهید؛ متن «۳۰۰» نمایشی هم از همین ثابت ساخته می‌شود.

چون روی گوشه پایین فیلد مطلق نشسته و با اسکرول متن جابه‌جا نمی‌شود؛ اگر داخل textarea بود همراه متن حرکت می‌کرد و ناخوانا می‌شد.

بله؛ resize: vertical اجازه تغییر ارتفاع فقط عمودی می‌دهد تا عرض چیدمان به‌هم نریزد. اگر می‌خواهید قفل شود، مقدار را none کنید.

امتیاز شما به این محتوا

میانگین امتیاز کاربران: ۴.۸ از ۳ رأی — برای امتیازدهی وارد شوید

دیدگاه‌ها (۰)

هنوز دیدگاهی ثبت نشده؛ اولین نفر باشید!

دیدگاه خود را بنویسید

کپچا

دیدگاه شما پس از تأیید مدیر نمایش داده می‌شود.

شاید بپسندی

پیش‌نمایش زنده اسنیپت

اینپوت خط زیر متحرک

فرم اینپوت خط
۱۰۰
۴.۲ (۱۶)
پیش‌نمایش زنده اسنیپت

ورودی کد یکبار مصرف

فرم کد یکبار مصرف OTP
۱۰۰
۴.۲ (۱۶)
پیش‌نمایش زنده اسنیپت

اینپوت لیبل شناور

اینپوت فرم لیبل شناور
۱۰۰
۵.۰ (۱۶)