Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > ขอ java script ในการลบค่าในช่อง textbox แล้วโฟกัสช่องก่อนหน้าหน่อยครับ



 

ขอ java script ในการลบค่าในช่อง textbox แล้วโฟกัสช่องก่อนหน้าหน่อยครับ

 



Topic : 106506



โพสกระทู้ ( 107 )
บทความ ( 0 )



สถานะออฟไลน์




ผมมีฟอร์มกรอก ซึ่งได้เขียนสั่งให้มันจับโฟกัสไปช่องต่อไป ถ้ามีการกรอกค่า 1 ค่าอยู่แล้ว แต่เมื่อกรอกค่าผิดต้องมาลบค่าเป็นช่องๆๆ ไม่ทราบว่าใครมีโค้ดการโฟกัสช่องก่อนหน้าเมื่อกดปุ่ม delete จากช่องสุดท้ายไหมครับ

focus

Code (PHP)
<script type="text/javascript">
<? for($numbox=2;$numbox<=10;$numbox++){ ?> 
function next_num<?=$numbox?>(){
    if(document.position.num<?=$numbox-1?>.value.length==1){
        document.position.num<?=$numbox?>.focus();
    }
}
<? } ?>
</script>
<form action="?action=position" method="post" name="position">
<input type="text" name="num1" onkeyup="next_num2();" maxlength="1" value="0" style="width:20px; text-align:center;"/>
<input type="text" name="num2" onkeyup="next_num3();" maxlength="1" style="width:20px; text-align:center;"/> - 
<input type="text" name="num3" onkeyup="next_num4();" maxlength="1" style="width:20px; text-align:center;"/>
<input type="text" name="num4" onkeyup="next_num5();" maxlength="1" style="width:20px; text-align:center;"/>
<input type="text" name="num5" onkeyup="next_num6();" maxlength="1" style="width:20px; text-align:center;"/>
<input type="text" name="num6" onkeyup="next_num7();" maxlength="1" style="width:20px; text-align:center;"/> - 
<input type="text" name="num7" onkeyup="next_num8();" maxlength="1" style="width:20px; text-align:center;"/>
<input type="text" name="num8" onkeyup="next_num9();" maxlength="1" style="width:20px; text-align:center;"/>
<input type="text" name="num9" onkeyup="next_num10();" maxlength="1" style="width:20px; text-align:center;"/>
<input type="text" name="num10" maxlength="1" style="width:20px; text-align:center;"/>

<input id="submit-mobile" type="image" src="images/search.png" />
</form>





Tag : PHP, HTML/CSS, JavaScript, jQuery







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-03-04 08:20:39 By : pengbuts View : 4077 Reply : 5
 

 

No. 1



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


นึกได้แค่แนวคิด ลองไป search ๆ ดูต่อเองนะ
- จับ keycode ของคีย์บอร์ดถ้ากด ปุ่มลบ เช่น Backspace, Space bar, Delete เมื่อมีการกดปุ่มพวกนี้ที่ input ช่องนั้น ๆ ให่มัน focus ไปที่ช่องก่อนหน้า
ไม่รู้แนวคิดนี้จะเวิร์คป่าวนะ...

แต่ทำไม ไม่คีย์เป็น input เดียวไปเลยอ่ะ จะเก็บแยกทำไม

ผมมี code อยู่ชุดนึง แต่ผมก็ไปเอาของคนอื่นมา อธิบายการทำงานไม่ถูก เด๋วจะ Edit มาให้เอาไปลองเล่นดู....แต่มันเป็นเรื่องเลขบัตรประชาชนนะ กดลบ ๆ ๆ พอลบ ช่องที่ต้องการจบมันก็จะ focus ช่องก่อนหน้าให้

ลอง Copy แล้วไปเล่นดู อาจจะเห็นภาพ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <script type='text/javascript'>
  function Numbers(e){
	var keynum;
	var keychar;
	var numcheck;
	if(window.event) {// IE
	  keynum = e.keyCode;844
	}
	else if(e.which) {// Netscape/Firefox/Opera
	  keynum = e.which;
	}
	if(keynum == 13 || keynum == 8 || typeof(keynum) == "undefined"){
			return true;
	}
	keychar= String.fromCharCode(keynum);
	numcheck = /^[0-9]$/;
	return numcheck.test(keychar);
}
function keyup(obj,e){
	var keynum;
	var keychar;
    var id = '';
	if(window.event) {// IE
	  keynum = e.keyCode;
	}
	else if(e.which) {// Netscape/Firefox/Opera
	  keynum = e.which;
	}
	keychar= String.fromCharCode(keynum); 

	var tagInput = document.getElementsByTagName('input');
	for(i=0;i<=tagInput.length;i++){
		if(tagInput[i] == obj){ 
			var prevObj = tagInput[i-1];
			var nextObj = tagInput[i+1];
			break;
		}
	} 
	if(obj.value.length == 0 && keynum == 8) prevObj.focus();
	
	if(obj.value.length == obj.getAttribute('maxlength')){ 
		for(i=0;i<=tagInput.length;i++){
			if(tagInput[i].id.substring(0,5) == 'txtID'){ 
				if(tagInput[i].value.length == tagInput[i].getAttribute('maxlength')){
					id += tagInput[i].value;
					if(tagInput[i].id == 'txtID5') break;
					
				}
				else{
					
					tagInput[i].focus();
					return;
				}
			}
		} 
		}
}
  </script>
  </head>
<body>
 <div>
    <form id="regis" name="regis" action="confirm.php" method="post" onsubmit="JavaScript:return send_data();">
           <div class="form-item">
            <label for="id_card">เลขบัตรประชาชน:</label>
<input type="text" name="txtID1" id="txtID1" style="width:12px" align="left" maxlength=1 onkeyup="keyup(this,event)" onkeypress="return Numbers(event)" /> - 
<input type="text" name="txtID2" id="txtID2" style="width:35px" align="left" maxlength=4 onkeyup="keyup(this,event)" onkeypress="return Numbers(event)" /> - 
<input type="text" name="txtID3" id="txtID3" style="width:40px" align="left" maxlength=5 onkeyup="keyup(this,event)" onkeypress="return Numbers(event)" /> - 
<input type="text" name="txtID4" id="txtID4" style="width:20px" align="left"  maxlength=2 onkeyup="keyup(this,event)" onkeypress="return Numbers(event)" /> - 
<input type="text" name="txtID5" id="txtID5" style="width:12px" align="left"  maxlength=1 onkeyup="keyup(this,event)" onkeypress="return Numbers(event)" /><br>
           </form> 
</div> 
</body>
</html>









ประวัติการแก้ไข
2014-03-04 09:10:25
2014-03-04 09:27:18
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-03-04 08:58:33 By : apisitp
 


 

No. 2



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

โค๊ดนี้ใช้ร่วมกับ jQuery นะครับ
1. ต้องเพิ่ม class="my_number" ให้กับ input ทุกช่อง
2. ต้องเพิ่ม id="xxxx" ให้เหมือน name= ของทุกช่อง

Code (JavaScript)
<script>
function setFocus(xId)
{
	document.getElementById(xId).focus();
}
$( ".my_number" ).keyup(function( event ) {
	var xVal = $(this).val();
	var xName = $(this).attr('name');
	//var lastChar = xName.substr(xName.length - 1);
        var lastChar = xName.replace('num', '');
	if(parseInt(lastChar) > 1){
		if(xVal=='') setFocus('num' + (parseInt(lastChar)-1) );
	}
});
</script>



--------
ลองเล่นดูแล้วเจอบัก var lastChar = xName.substr(xName.length - 1);
ถ้าเลข 2 หลักจะทำงานไม่ได้ 555+


ประวัติการแก้ไข
2014-03-04 10:01:26
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-03-04 09:54:38 By : {Cyberman}
 

 

No. 3



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : {Cyberman} เมื่อวันที่ 2014-03-04 09:54:38
รายละเอียดของการตอบ ::
แจ่ม...

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-03-04 10:00:04 By : apisitp
 


 

No. 4



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


Code (PHP)
<input type="text" maxlength="1" value="" size="3" />- 
<input type="text" maxlength="1" value="" size="3" />- 
<input type="text" maxlength="1" value="" size="4" />

<script src="http://code.jquery.com/jquery-1.9.0.js"></script>
<script>
	$(function(){
		$('input[type=text]').keyup(function(e){
            if($(this).val().length==$(this).attr('maxlength')){
				$(this).next(':input').focus();
            }else{
                $(this).prev(':input').focus();
            }
		})
	})
</script>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-03-04 10:48:29 By : Ex-[S]i[L]e[N]t
 


 

No. 5



โพสกระทู้ ( 107 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณพี่ๆๆทุกๆท่านมากๆๆครับ จะเอาไปทดลองเล่นก่อนนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-03-04 15:44:09 By : pengbuts
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอ java script ในการลบค่าในช่อง textbox แล้วโฟกัสช่องก่อนหน้าหน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่