PDA

View Full Version : << استفاده از کلید Tab در TextBox >>



AspNet
یک شنبه 16 مرداد 1384, 23:10 عصر
با سلام

یه تکست باکس در فرمم دارم که میخوام وقتی دارم تو تکست باکس می نویسم اگه کلید tab از کیبورد رو بزنم باعث انتخاب کنترل بعدی در فرمم نشه بلکه کار tab رو مثل مثلا notepad انجام بده..

آیا همچین کاری ممکنه؟؟

با تشکر:AspNet

AspNet
چهارشنبه 19 مرداد 1384, 23:08 عصر
راهی وجود نداشت؟؟

Behrouz_Rad
جمعه 21 مرداد 1384, 06:25 صبح
این سوال باید در بخش مباحث مربوط به JavaScript، HTML مطرح بشه.
به هر حال...
با استفاده از جاوا اسکریپت به راحتی می تونید این کار رو انجام بدید.
در زمان فشردن کلید Tab، به ترتیب رویدادهای onkeydown و onkeyup فراخوانی می شوند.
از آنجا که ماهیت کلید Tab در وب فرم ها، حرکت از عنصری به عنصر دیگر است، متاسفانه نمی توان در زمان فشردن کلید Tab، مانع قرار گیری Focus بر روی عنصر دیگری شد.
خوشبختانه می توان این مشکل را با استفاده از تابع setTimeout با مقدار دهی صفر به زمان اجرای تابع حل کرد.
شیوه کار به این شکل است که ابتدا مکان اشاره گر در TextBox را در یک متغیر ذخیره می کنیم و پس از آنکه Focus به عنصر دیگری منتقل شد، مکان ذخیره شده را با کد کاراکتر Tab که عدد 9 می باشد، جایگزین کرده و در نهایت، Focus را به Text Box بر می گردانیم.


function CheckTab(el) {
if ((document.all) && (9==event.keyCode)) {
el.selection=document.selection.createRange();
setTimeout("ProcessTab('" + el.id + "')",0)
}
}

function ProcessTab(id) {
document.all[id].selection.text=String.fromCharCode(9)
document.all[id].focus()
}

نحوه فراخوانی:


T INPUT id="myTextBox" type="text" onkeydown="CheckTab(this)"T


موفق باشید.

AspNet
جمعه 21 مرداد 1384, 12:47 عصر
باید امتحانش کنم
دستتون درد نکنه

Behrouz_Rad
جمعه 21 مرداد 1384, 16:58 عصر
پ.ن: هیچ وقت قبل از تست کدی رو به کاربری نمیدم.
کد فوق امتحانش رو پس داده.
Good Luck

AspNet
جمعه 21 مرداد 1384, 23:16 عصر
منظورم این بود که باید باهاش کار کنم که اگه جایی رو متوجه نشدم باز مزاحم بشم
وگرنه من به جوابای شما اطمینان دارم :)