PDA

View Full Version : چگونه با فشار دادن کلید Enterاشارگر به textbox بعدی منتقل شود



mohsen_zelzela00
جمعه 29 آبان 1388, 18:45 عصر
با سلام
من در یک صفجه وب که کاربر باید یک سری اطلاعات وارد کند می خواهم وقتی که کاربر کلید enter رو فشار داد اشارگر به textbox بعدی منتقل شود چگونه باید این کار رو انجام بدم؟؟؟


و چگونه میتونم این کد رو به یک کنترل تبدیل کنم که همیشه بتونم از آن استفاده کنم؟؟؟؟؟؟؟؟

sorena1356
شنبه 30 آبان 1388, 12:33 عصر
من هم همين مشكل رو دارم

در واقع بايد از loast focus استفاده كنيم كه textbox نداره !

hezare
یک شنبه 01 آذر 1388, 18:35 عصر
دوست عزیز


اگر تکست باکس رو کلاینت ساید تعریف کردید می تونید از این کد استفاده کنید


<input type="text" id="someInput" onkeypress="handleEnter(this, event)" />

------------------------------------



onkeypressتکست باکس رو اسم تابع بگذارید



function handleEnter(inField, e) {
var charCode;


if(e && e.which){
charCode = e.which;
}else if(window.event){
e = window.event;
charCode = e.keyCode;
}
if(charCode == 13) {
alert("Enter was pressed on " + inField.id);
}
}

mohsen_zelzela00
یک شنبه 01 آذر 1388, 19:11 عصر
دوست عزیز



اگر تکست باکس رو کلاینت ساید تعریف کردید می تونید از این کد استفاده کنید


<input type="text" id="someInput" onkeypress="handleEnter(this, event)" />


------------------------------------



onkeypressتکست باکس رو اسم تابع بگذارید



function handleEnter(inField, e) {
var charCode;


if(e && e.which){
charCode = e.which;
}else if(window.event){
e = window.event;
charCode = e.keyCode;
}
if(charCode == 13) {
alert("Enter was pressed on " + inField.id);
}
}




اگر از <asp:textbox></asp:textbox>استفاده کنم چی؟؟؟؟؟؟

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

raziee
یک شنبه 01 آذر 1388, 21:37 عصر
اگر از <asp:textbox></asp:textbox>استفاده کنم چی؟؟؟؟؟؟

مشکلی نیست.
همین کد رو بنویس ، درسته که زمانی که داری کدها رو تایپ میکنی همچین رویدادی نداره اما در اجرا همه چیز درست میشه.


<asp:TextBox ID="myTextBox" runat="server" onkeypress="handleEnter(this, event)" />

shocraneh
دوشنبه 02 آذر 1388, 00:27 صبح
من روی vb می خام . نتونستم کد رو تبدیل کنم
من در aplicationاز این کد استفاده می کردم سعی کردم بهش نگاه کنم و الگو بگیرم اما جواب نداد
Function Isletter(ByVal e As System.Windows.Forms.KeyPressEventArgs) As Boolean
If Char.IsLetter(e.KeyChar) Then
e.Handled = True
Return True
Else
Return False
End If
End Function

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Isletter(e)
End Sub


من اینجوری نوشتم ولی ایراد داره

Function handleEnter(ByVal inField As TextBox, ByVal e As System.EventArgs) As Boolean
Dim charcode As Char
If (e And e.which) Then
charcode = e.which
ElseIf (window.event) Then
e = window.event
charcode = e.keyCode
End If
If (charcode = 13) Then
' alert("Enter was pressed on " + inField.id)
End If
Return 0
End Function


در ضمن رو چه طوری ایجاد کنم
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Web .UI . ) Handles Txttitr.KeyPress

End Sub

Mostafa_Dindar
دوشنبه 02 آذر 1388, 01:00 صبح
سلام
خيلي خوبه براي هر كاري راه حل پيدا كنيم . ولي چه ضرورتي داره كه براي انتقال فوكوس از Enter استفاده كنيد ؟ راه ساده تر و البته استاندارد اينه كه از Tab براي انتقال فوكوس استفاده بشه و Tabindex هم براي كنترلهامون تعريف كنيم تا نوبت رو مشخص كنيم .

mohsen_zelzela00
دوشنبه 02 آذر 1388, 19:47 عصر
سلام
خيلي خوبه براي هر كاري راه حل پيدا كنيم . ولي چه ضرورتي داره كه براي انتقال فوكوس از Enter استفاده كنيد ؟ راه ساده تر و البته استاندارد اينه كه از Tab براي انتقال فوكوس استفاده بشه و Tabindex هم براي كنترلهامون تعريف كنيم تا نوبت رو مشخص كنيم .

آخه بعضی از کاربران به کلید enter عادت کردند برای همن من مجبور هستم در پروژه خودم این رو لحاظ کنم

Mostafa_Dindar
دوشنبه 02 آذر 1388, 20:16 عصر
آخه بعضی از کاربران به کلید enter عادت کردند
سلام .
شايد بعضي از كاربران به كليد * عادت داشته باشند ! اين كه دليل نميشه برادر من . مگه اينكه تعداد كاربران از پيش تعريف شده و برنامه به صورت لوكال و كاملا خصوصي استفاده بشه .
روش استاندارد و عمومي اين هست كه از Tab براي انتقال فوكوس استفاده بشه . و Enter براي Sbumit فرم .