PDA

View Full Version : کنترل readonly یا disabled؟



eshpilen
شنبه 14 دی 1392, 11:59 صبح
موقعی که مثلا یک text input در صفحه داریم که با اطلاعات از پیش تعیین شده ای پر شده و این اطلاعات رو کاربر نباید بتونه تغییر بده، میتونیم اون رو readonly کنیم.
ولی میتونیم بجای readonly کردن disabled هم بکنیم.
disabled خوبیش اینه که کاربر با یک نگاه میتونه از ظاهرش تشخیص بده که اون ورودی Fix شده است و قابل ویرایش نیست.
readonly ولی از ظاهرش مشخص نیست و کاربر خیلی وقتا میره توش و میخواد ویرایش کنه که میبینه نمیشه!
من خودم شده رفتم readonly رو ویرایش کنم بعد دیدم نمیشه، و سر این یخورده شک هم کردم، یعنی فکر کردم شاید اشکال از جای دیگری باشه و مثلا شاید مشکل فنی در جایی وجود داره که نمیشه ویرایش کرد. مثلا شاید فکر کردم که ویندوز یا مرورگر مشکلی دارن.
ولی disabled خوبیش اینه که صریح تر مشخصه که خود اون کنترل اساسا غیرفعال شده.
البته مزیت بیشترش همونه که در همون دید اول و بدون تست کردن مشخصه که قابل ویرایش نیست و Fix شده است.

پس بنظر شما برای اینطور موارد از disabled استفاده کنیم یا readonly؟

البته یه مسئله هم اینه که شاید تفسیر منطقی این دو حالت در بعضی context ها مقداری تفاوت بکنه.
مثلا شاید بعضی جاها یک کنترل disabled رو به معنای این بگیرن که کلا اون گزینه در اون شرایط بی معنی/بدون کاربرد است. ولی من شخصا با چنین مواردی خیلی کم برخورد کردم و چنین تفسیری هم نمیکنم بطور معمول، مگر اینکه مقداری که در اون ورودی درج شده هم یک مقدار خالی یا پیشفرض باشه و بهرصورت مقداری که مشخص باشه بعنوان مقدار انتخاب نشده درنظر گرفته شده.

2undercover
یک شنبه 15 دی 1392, 15:24 عصر
http://stackoverflow.com/questions/7730695/whats-the-difference-between-disabled-disabled-and-readonly-readonly-for-te

اینجا نوشته شده که عنصری که disabled باشه به همراه فرم ارسال نمیشه اما عنصری که readonly هست ارسال میشه.

پس با این حساب با هم دیگه فرق دارن و نمیشه از هر دو تاش در یک موقعیت به صورت انتخابی استفاده کرد.

البته برای استایل دادن به عناصری که disabled هستن یا readonly توی CSS راهکار هست:


input:disabled {
// Your styles
}
input[readonly] {
// Your styles
}

eshpilen
چهارشنبه 18 دی 1392, 08:21 صبح
آره میدونم که ارسال نمیشه.
بخاطر همین من بجاش یک hidden input میذارم با همون اسم و مقدار.

چیزی که میخواستم بدونم اینکه کدوم شکل از نظر رابط کاربری بهتره.