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,028

HOME > PHP > PHP Forum > การตรวจสอบการกรอกข้อมูลวันที่ ใช้ java script ตรวจสอบ แต่ติดปัญหาตรง onchange



 

การตรวจสอบการกรอกข้อมูลวันที่ ใช้ java script ตรวจสอบ แต่ติดปัญหาตรง onchange

 



Topic : 083099



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



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




Code (PHP)
<script type="text/javascript">
function chkInputDate(obj){
	var oriDate=obj.value;
	var nowYear = (new Date()).getFullYear();
	var nowYear = parseInt(nowYear);
	var minYear = nowYear-1;
	var maxYear = nowYear+1;
	
	if(oriDate.length!=10){
		alert("ตรวจสอบข้อมูลวันที่ รูปแบบการกรอกข้อมูลไม่ถูกต้องค่ะ!.....");
		return false;	
	}else{
		var resDate=oriDate.split("/");
		var d=resDate[0];
		var m=resDate[1];
		var y=resDate[2];
		var numberOfDays;
		switch (m) {
		  case '02':  // February
				   numberOfDays = 28;
				   if (y % 4 == 0) {
					 numberOfDays = 29;
					 if (y % 100 == 0 && y % 400 != 0)
					   numberOfDays = 28;
				   }
				   break;
		  case '04':  // April
		  case '06':  // June
		  case '09':  // September
		  case '11': // November
				   numberOfDays = 30;
				   break;
		  default: numberOfDays = 31;
				   break;
		}
		if(d>numberOfDays){
			alert("ตรวจสอบข้อมูลวันที่ด้้วยค่ะ!.....");
			return false;
		}
		if(m>12){
			alert("ตรวจสอบข้อมูลเดือนด้วยค่ะ!.....");
			return false;
		}
		//กำหนดให้สามารถกรอกข้อมูลได้น้อยกว่าปีปัจจุบัน 1 ปี  และมากกว่า าปีปัจจุบัน 1 ปี  เช่นปีปัจจุบัน 2012 จะสามารถกรอกข้อมูลได้ ปี 2011 , 2012 และ 2013
		if((y<minYear)||(y>maxYear)){
			alert("ตรวจสอบข้อมูลปีด้วยค่ะ!.....");
			return false;
		}
	}
}
function autoTab(obj){
	var regExp = /[.0-9]$/;
	if(!regExp.test(obj.value)){
		obj.value ="";
		return false;
	}else{
      var pattern=new String("__/__/____"); // กำหนดรูปแบบในนี้
      var pattern_ex=new String("/"); // กำหนดสัญลักษณ์หรือเครื่องหมายที่ใช้แบ่งในนี้
      var returnText=new String("");
      var obj_l=obj.value.length;
      var obj_l2=obj_l-1
      for(i=0;i<pattern.length;i++){         
         if(obj_l2==i && pattern.charAt(i+1)==pattern_ex){
            returnText+=obj.value+pattern_ex;
            obj.value=returnText;
         }
      }
      if(obj_l>=pattern.length){
         obj.value=obj.value.substr(0,pattern.length);         
      }
	}
}
</script>
Date || <input type="text" id="date"  name="date" size="8" value="" onkeyup="autoTab(this)" onchange="chkInputDate(this)"/>


จากโค้ดด้านบนนะค่ะ จะมีการตรวจสอบ onkeyup เรียกใช้ function autoTab เพื่อกำหนดรูปแบบการกรอกข้อมูล
และ ตรวจสอบ onchange เรียกใช้ function chkInputDate เพื่อเช็คความถูกต้องของวันที่ที่กรอก

ถ้า กรอกในรูปแบบ 29/08/2012 หรือ 29/1 หรือ 29/08/2 การเรียกใช้ java script จะทำงานได้ปกติ
แต่ถ้ากรอกในรูปแบบ 29/ หรือ 29/08/ จะไม่สามารถเรียกใช้ function chkInputDate ได้

คิดว่าน่าจะเกิดจาก / ไม่ได้เกิดจากการคีย์
มีวีธีแก้ไขหรือเปล่าค่ะ



Tag : PHP, JAVA









ประวัติการแก้ไข
2012-08-29 11:42:22
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-08-29 11:30:25 By : Pep_Fare View : 1370 Reply : 1
 

 

No. 1



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

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

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

Datepicker






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-29 14:05:49 By : Krungsri
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : การตรวจสอบการกรอกข้อมูลวันที่ ใช้ java script ตรวจสอบ แต่ติดปัญหาตรง onchange
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่