กันยายน 16, 2007 โดย tanatip
คุณเคยติดปัญหานี้หรือเปล่า ขณะที่ทำการ กรอก user name และ password แล้วต้องการ กด Key Enter เพื่อทำการ Login เข้าสู่ระบบของ คุณ โดยไม่ต้องใช้ mouse ไปคลิกที่ปุ่ม Login เพื่อทำการ login แต่ปัญหานี้จะไม่เกิดถ้าใน form นั้นมี ปุ่ม login เพียง ปุ่มเดียว แต่ถ้า มีมากกว่า 1 ปุ่มแล้วละก็เกิดปัญหาแน่ครับ
ตัวอย่างถ้าในหน้านั้น มีสวนที่ต้องการ search หาข้อมูลของ web หรือ แล้วต้องการ กด Key Enter หลังจาก กรอก คำีที่ต้องการ ลงใน text box ถ้าเรากด Enter ก็อาจจะเกิดปัญหา ใน การ PostBack ซึ่งอาจจะกลายเป็นการ Login แทน ที่จะเป็นการ Search ข้อมูล
เรามาดูวิธีการแก้ปัญหานี้กันครับ
1. สร้าง Javascript ดังนี้ครับ
function AnyInput_KeyDown (e, target)
{
if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) { __doPostBack(target,”); return false; } return true;
}
2. กำหนด Attribute ให้กับ textbox ที่ต้องการ (ในส่วนของ CodeBehide ตอน form_load)
ถ้ามีการกด Key Enter ในแต่ละ textbox โปรแกรมจะเข้าไปทำงานต่อในส่วน ของ ปุ่ม ใน Event Click
txtGoogleSearch.Attributes.Add(“onkeyDown”,”return AnyInput_KeyDown(event,’btnGoogleSearch’)”);
txtMemberPassword.Attributes.Add(“onkeyDown”,”return AnyInput_KeyDown(event,’btnLogin’)”);
txtEMailS.Attributes.Add(“onkeyDown”,”return AnyInput_KeyDown(event,’btnSearch’)”);
แค่นี้ละครับเราก็สามารถใช้ Key ENTER แทนการกดปุ่ม ได้แล้วครับ