رادیو
انتخاب دقیقاً یک گزینه از چند گزینه؛ به شکل فهرست، افقی یا کارتهای قابلانتخاب.
فهرست
<RadioGroup label="روش ارسال" name="shipping" defaultValue="post">
<Radio value="post" label="پست پیشتاز" description="۳ تا ۵ روز کاری" />
<Radio value="courier" label="پیک" description="همان روز، فقط تهران" />
<Radio value="pickup" label="تحویل حضوری" disabled />
</RadioGroup><fieldset class="k-radio-group">
<legend class="k-label">روش ارسال</legend>
<label class="k-check" for=":r3Rl:">
<input type="radio" class="k-radio" id=":r3Rl:" name="shipping" aria-describedby=":r3Rl:-desc" checked="" value="post"/><span class="k-check__text"><span class="k-check__label">پست پیشتاز</span><span class="k-check__description" id=":r3Rl:-desc">۳ تا ۵ روز کاری</span></span>
</label>
<label class="k-check" for=":r3R15:">
<input type="radio" class="k-radio" id=":r3R15:" name="shipping" aria-describedby=":r3R15:-desc" value="courier"/><span class="k-check__text"><span class="k-check__label">پیک</span><span class="k-check__description" id=":r3R15:-desc">همان روز، فقط تهران</span></span>
</label>
<label class="k-check" for=":r3R1l:">
<input type="radio" class="k-radio" id=":r3R1l:" name="shipping" disabled="" value="pickup"/><span class="k-check__text"><span class="k-check__label">تحویل حضوری</span></span>
</label>
</fieldset>افقی
<RadioGroup label="اندازه" variant="inline" name="size" defaultValue="m">
<Radio value="s" label="کوچک" />
<Radio value="m" label="متوسط" />
<Radio value="l" label="بزرگ" />
</RadioGroup><fieldset class="k-radio-group k-radio-group--inline">
<legend class="k-label">اندازه</legend>
<label class="k-check" for=":r4Rl:">
<input type="radio" class="k-radio" id=":r4Rl:" name="size" value="s"/><span class="k-check__text"><span class="k-check__label">کوچک</span></span>
</label>
<label class="k-check" for=":r4R15:">
<input type="radio" class="k-radio" id=":r4R15:" name="size" checked="" value="m"/><span class="k-check__text"><span class="k-check__label">متوسط</span></span>
</label>
<label class="k-check" for=":r4R1l:">
<input type="radio" class="k-radio" id=":r4R1l:" name="size" value="l"/><span class="k-check__text"><span class="k-check__label">بزرگ</span></span>
</label>
</fieldset>کارتهای قابلانتخاب
برای گزینههایی که توضیح بیشتری لازم دارند، مثل انتخاب پلن.
انتخاب: pro
<RadioGroup label="پلن اشتراک" variant="cards" value={plan} onChange={setPlan}>
<Radio value="basic" label="پایه" description="۱ کاربر · ۹۰ هزار تومان در ماه" />
<Radio value="pro" label="حرفهای" description="تا ۲۰ کاربر · ۴۹۰ هزار تومان در ماه" />
<Radio value="org" label="سازمانی" description="کاربر نامحدود · تماس بگیرید" />
</RadioGroup>ویژگیهای RadioGroup
| نام | نوع | پیشفرض | توضیح |
|---|---|---|---|
label | ReactNode | — | عنوان گروه (legend) — الزامی |
name | string | خودکار | نام فیلد فرم |
value / defaultValue | string | — | گزینهٔ انتخابشده |
onChange | (value: string) => void | — | با تغییر انتخاب |
variant | "list" | "inline" | "cards" | "list" | چیدمان |
hint / error | ReactNode | — | راهنما و خطای گروه |
required / disabled | boolean | false | الزامی یا غیرفعال کردن کل گروه |
دسترسپذیری
- گروه در
<fieldset>با<legend>است؛ صفحهخوان عنوان گروه را پیش از هر گزینه میخواند. - رادیوها بومیاند: Tab وارد گروه میشود و کلیدهای جهتدار بین گزینهها جابهجا میکنند.
- اگر کاربر باید چند گزینه انتخاب کند، از چکباکس استفاده کنید.