PDA

View Full Version : استفاده از jQuery برای کنترل فوکوس به هنگام keypress or keydown در web application ها



majid_darab
سه شنبه 13 بهمن 1388, 14:33 عصر
با سلام و عرض خسته نباشید :
من در فرم خود (ASP.NET web app with csharp) چند عدد تکست باکس تلریک + 3 تا دکمه دارم که می خوام فوکوس گرفتن اونها رو با دکمه های کی بورد کنترل کنم و بی خیال دکمه ی تب و نحوه ی کارکرد آن بشم.
دلیل اصرار ورزیدن برای این کار این است که کاربرانی را فرض نمایید که کارشان ورود اطلاعات است و می خوان از این تکست باکس ها و 3 عدد دکمه با کی بورد به صورت سریع اقدام به ورود اطلاعات کنن...
برای انجام این مهم می خوایم عین حالت win form کاری کنیم که در لحظه ی ورود به صفحه ی مورد نظر(در اینجا view داریم) فوکوس رو تکست باکس اول باشه و وقتی طرف دکمه ی جهتی پایین رو زد بره رو textbox بعدی و الی آخر ...و درنهایت یا هر جای کار که دکمه ی اینتر رو بزنه یک دکمه ی خاص کلیک بشه و دوباره فوکوس بره رو تکست باکس اول برای ورود مجدد اطلاعات...
نکته ای که دراینجا وجود داره اینه که ما در اینجا ولیدیتور داریم ...
در همین سایت و جاهای دیگه یه گشتی زدم و به این نتیجه رسیدم که در وب application ها برای انجام این کار باید از جاوا اسکریپت استفاده کرد ؟ (jQuery)
با توجه به اینکه با این زبان آشنایی ندارم اگر چنانچه استفاده از آن برای انجام این کار، تنها راه ممکن می باشد اگر راهنمایی بفرمایید ممنون می شوم.
نکته ی دیگری که به آن برخورد کردم این بود که یک جایی خوندم که باید از input textbox html برای کار با جاوا اسکریپت استفاده کنی که تا اونجایی که میشه می خوام دست به تکست باکس های موجود نزنم - چون از تکست باکس های تلریک در فرم های خود به تعداد بی شماری استفاده کرده ام...
در تاپیک زیر کدی گذاشته شده بود که فکر می کنم مخصوص win form ها بوده ، چون در مورد تکست باکس event کی پرس نداریم.(تو وب)
واما تاپیک :
http://barnamenevis.org/forum/showth...ypress+ASP.NET (http://barnamenevis.org/forum/showthread.php?t=198391&highlight=keypress+ASP.NET)
راستی اگر در جای اشتباهی این تاپیکو زدم معذرت خواهی می کنم...
با تشکر

majid_darab
دوشنبه 19 بهمن 1388, 14:45 عصر
با سلام و عرض خسته نباشید:
پس از چند روزی سروکله زدن با jquery بالاخره راه حل مورد بالا رو پیدا کردم و باید بگم که برای کار با jquery یا جاوااسکریت نوع کنترل به کار رفته ملاک نیست و فقط باید حواسمون به آی دی کنترل مورد نظر که به صورت html ساخته می شه باشه که این آی دی رو میشه خیلی راحت از تو page source کشید بیرون ...
و اما کدی که کار منو راه انداخت به صورت زیر می باشد :

<script src="../JQuery/jquery-1.4.1.js" language="javascript" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$('input[id$=RadcbCoNameInInsert_Input]').focus();
$('input[id$=RadcbCoNameInInsert_Input]').bind('keyup', function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) {
$('input[id$=RadcbUserTypeInInsert_Input]').focus();
}
});
</script>
دراینجا تا فرم لود می شود فوکوس روی RadComboBox اول (همون دراپ داون خودمون)قرارمی گیره ووقتی دکمه ی اینتر رو روی این RadComboBox می زنیم کنترل بعدی که اونم RadComboBox است فوکوس می گیره ...
حالا میشه به جای RadComboBox ها از همون DropDown های معمولی یا تکست باکس استفاده کنیم و با کمی تغییر در قسمت آی دی های به کاررفته در کد اعلام شده به مقصود خود برسیم.
به طور مثال در مورد TextBox های Telerik آی دی مورد نظر به صورت زیر میشه :

$('input[id$=RadtxtAddressInInsert_text]').focus();
با تشکر
مجید داراب