با سلام
یه تکست باکس در فرمم دارم که میخوام وقتی دارم تو تکست باکس می نویسم اگه کلید tab از کیبورد رو بزنم باعث انتخاب کنترل بعدی در فرمم نشه بلکه کار tab رو مثل مثلا notepad انجام بده..
آیا همچین کاری ممکنه؟؟
با تشکر:AspNet
Printable View
با سلام
یه تکست باکس در فرمم دارم که میخوام وقتی دارم تو تکست باکس می نویسم اگه کلید tab از کیبورد رو بزنم باعث انتخاب کنترل بعدی در فرمم نشه بلکه کار tab رو مثل مثلا notepad انجام بده..
آیا همچین کاری ممکنه؟؟
با تشکر:AspNet
راهی وجود نداشت؟؟
این سوال باید در بخش مباحث مربوط به 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
موفق باشید.
باید امتحانش کنم
دستتون درد نکنه
پ.ن: هیچ وقت قبل از تست کدی رو به کاربری نمیدم.
کد فوق امتحانش رو پس داده.
Good Luck
منظورم این بود که باید باهاش کار کنم که اگه جایی رو متوجه نشدم باز مزاحم بشم
وگرنه من به جوابای شما اطمینان دارم :)