พอดีตอนนี้ได้โจทย์ใหม่มาว่า คือ จนท. ไม่อยากกรอก id ของตัวอย่างเอง แต่อยากยิง barcode ในช่องกรอกเลย โดยเมื่อยิง barcode แล้วจะได้ผลลัพธ์เป็น id นั้นๆ ครับ เช่น A55-001 อะไรประมาณนี้



แต่ปัญหาคือว่า barcode ที่ผมทำออกมาตอนนี้ (2D barcode) มันจะมีคำสั่ง enter ติดมาด้วย เพราะใช้กับระบบ database และเป็นข้อจำกัดที่มีตั้งแต่แรกครับ ดังนั้นเวลายิง barcode ลงในช่องกรอกนั้นก็จริง แต่มันดันไปกลายเป็นคำสั่ง กดปุ่ม submit ของฟอร์มเลย โดยที่ยังไม่ได้กรอกข้อมูลอื่นๆ  



เลยอยากจะรู้ว่า ท่านใดพอจะมีไอเดียว่า สร้าง form ยังไงไม่ให้เวลายิง barcode แล้วยังไม่กด submit อัตโนมัติ แต่คนกรอกนั้นต้องกดปุ่ม submit เองน่ะครับ ก็หมายความว่ากรอกรายละเอียดในฟอร์มให้ครบก่อนแล้วค่อย submit น่ะครับ



ปล. ไอเดียที่นึกออกตอนนี้คือ มีหน้าฟอร์มให้ยิง barcode 1 ฟอร์มก่อน โดยมีแค่ช่องให้ยิง barcode อย่างเดียวเลย แล้วค่อยส่งค่า id ไปยังหน้าใหม่อีกฟอร์มนึง จากนั้นค่อยกรอกรายละเอียดอื่นๆ ต่อน่ะครับ
Narongrit Sritana 07 ก.พ. 2555 20:43
เพิ่มเติมครับ ที่นึกออกอีกอันคือ submit form แรกแล้วให้อีกฟอร์มปรากฏออกมาในหน้าเดียวกันนั้นเลย 

น่าจะทำประมาณไหนครับ 



กำลังนั่งหาบทความที่เกี่ยวข้องอยู่ แต่นึกคำค้นไม่ออก 555++



ปล. อีกที เดี๋ยวพอเสร็จอันนี้จะเอาโค้ดที่ปรับและใช้งานได้ไปเขียนที่ blog นะครับ กันผมลืม และเผื่อคนอื่นอยากใช้แบบอย่างที่ผมใช้ด้วย
กรกฎ วิริยะ 07 ก.พ. 2555 21:53


ดูบทความเน้อ เขียนสดๆร้อนๆเลย



(เขียนโดยไม่ใช้ Framework นี่มันยากกว่าที่คิดแฮะ)



 


Narongrit Sritana 07 ก.พ. 2555 22:40
ขอบคุณค้าบ



แหล่มเชี่ยว ทีนี้ก็ไม่ต้องยุ่งยากหลายหน้าละ



ปล. เดี๋ยวขอลองก่อนนะครับว่ามันส่งค่าเป็น return(13) หรือเปล่า
Wanchana yoojuy 08 ก.พ. 2555 12:23
1.การที่ Enter ออกมา ออกมาจาก Barcode หรือตัวแสกนแน่ครับ ลองตรวจสอบดูก่อนนะครับ เพราะว่าโดยปกติ เครื่องแสกนส่วนใหญ่จะมี Tab หรือ Enter ออกมาด้วย แล้วแต่ว่ากำหนดให้เป็นอย่างไร หรือจะให้ไม่มีเลยก็ได้ 



2.ใช้่่ script นี้เพื่อแก้ปัญหาครับ




function checkEnter(e){ //e is event object passed from function invocation


var characterCode //literal character code will be stored in this variable


 


if(e && e.which){ //if which property of event object is supported (NN4)


e = e


characterCode = e.which //character code is contained in NN4's which property


}else{


e = event


characterCode = e.keyCode //character code is contained in IE's keyCode property


}


if(characterCode == 0x0d){ //if generated character code is equal to ascii 13 (if enter key)


e.keyCode=0x09;


}


return;


}


function checkKeyNumber(e){


if(!((e.keyCode>=46)&&(e.keyCode<=57))){


alert("¡ÃسÒãÊèµÑÇàÅ¢")


return event.keyCode=0;


}


}


function check_number(ch){


var len, digit;


if(ch == " "){ 


return false;


len=0;


}else{


len = ch.length;


}


for(var i=0 ; i<len ; i++)


{


digit = ch.charAt(i)


if(digit >="0" && digit <="9" || digit =="." ){


; 


}else{


alert("Input Number!");


document.getElementById("unit").value ="";


document.getElementById("unit").focus();


return false; 


} 


} 


return true;


}





<input type="barcode" name="barcode" id="textfield" onKeyDown="checkEnter()"/>

Narongrit Sritana 08 ก.พ. 2555 14:19
ขอบคุณครับ สรุปแล้วโค้ดในบทความใช้ได้



เดี๋ยวไงจะลองเอาของอีกท่านไปทดสอบดูนะครับ คิดว่าน่าจะเป็นประโยชน์ในอนาคต
Narongrit Sritana 21 ก.พ. 2555 18:28
แหะๆ มีปัญหาอีกนิด



http://www.goragod.com/knowledge/....html?q=barcode



คือผมลองไปเปิดใน Firefox แล้วปุ่ม submit มันไม่ทำงาน มีวิธีให้ firefox ใช้งานได้ไหมครับ

เพราะเข้าไปเช็คดู option ของ firefox ก็เปิดการใช้งาน java แล้ว แต่มันก็ยังไม่ทำงานน่ะครับ
กรกฎ วิริยะ 21 ก.พ. 2555 20:14
ลองดูบทความนะ ผมแก้ไขให้แล้ว
Narongrit Sritana 22 ก.พ. 2555 01:56
ขอบคุณมากครับ