GORAGOD.com

freelance, web developer, web designer, hosting, domain name

ขอถามสักหน่อยคะ

ขอถามสักหน่อยคะ
จากรูปคะ ถ้าเราคลิกปุ่มแรก ไม่มี

ตัวเลขในช่อง 0026 เปลี่ยนเป็น 0027



แต่ถ้าเลือก มี ใ้ห้เป็น 0026 แบบเดิมทำอย่างไรคะ





13 ธ.ค. 2553 4 1,865

<p><input type="radio" name="x[]" value="0" onclick="doCheck(0, 'src_0', 'dest_0')" /> Unchecked

<input type="radio" name="x[]" value="1" onclick="doCheck(1, 'src_0', 'dest_0')" /> Checked</p>

<p><input id="src_0" value="400" />

<input id="dest_0" /></p>

<p><input type="radio" name="x[]" value="0" onclick="doCheck(0, 'src_1', 'dest_1')" /> Unchecked

<input type="radio" name="x[]" value="1" onclick="doCheck(1, 'src_1', 'dest_1')" /> Checked</p>

<p><input id="src_1" value="1400" />

<input id="dest_1" /></p>



<script type="text/javascript">

function doCheck(id, src, dest) {

    document.getElementById(dest).value = parseFloat(document.getElementById(src).value) + id;

};

</script>


ทีแรกว่าจะเขียนให้ใช้ได้กับ input ทีละชุด แต่เดาเอาว่าเดี๋ยวคงมีปัญหาอีก เลยเขียนฟังก์ชั่นเพื่อให้สามารถใช้งานได้กับ input หลายๆชุดเลยทีเดียว



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



1 รับ event onclick เพื่อดูว่า ปุ่มใดถูกกด

2 ส่งค่าทั้งหมดที่จำเป็นต้องใช้ ไปพร้อมกันเลยทีเดียว เช่น ค่าที่ต้องการบวกเพิ่ม (id) และ id ของ element ที่เกี่ยวข้อง

3 คำนวณค่าใหม่ใส่ input ที่ต้องการด้วยแนวคิดง่ายๆ (ไม่ต้องจองตัวแปร ส่ง หรือ รับตัวแปรบ่อยๆ ช่วยให้โค้ดเร็วขึ้น)



นี่ถ้าใช้ GAjax โค้ดจะยืดหยุ่นกว่านี้อีก ไม่ต้องมานั่งเขียนคำสั่งให้ Input ทีละตัว
#1

ขอบคุณคะมากคะ เดี๋ยวไปเขียนเพิ่มและเช็คเอาคะว่าเป็นปุ่มใด และก็เข้าไปทำ event  ที่ได้ส่งค่ามา
#2

อ.คะค่าที่ได้ เป็น 27เราจะเติมเลข 0 ไปให้ครบสี่หลัก โดยต้องเช็คค่าก่อนว่าส่งมาเป็นกี่หลักและค่อยเติม 0 เข้าไปทำอย่างไรคะ
#3

ถ้าใช้ GAjax ก็จะมีฟังก์ชั่น leftPad



var d = 27;

d = d.leftPad(4, '0');

alert(d);



ถ้าไม่ได้ใช้ลองดูจากที่นี่



javascript number format
#4
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M
^