A-AA+then

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

896
ขอถามสักหน่อยคะ
จากรูปคะ ถ้าเราคลิกปุ่มแรก ไม่มี
ตัวเลขในช่อง 0026 เปลี่ยนเป็น 0027

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


4 ความคิดเห็น

<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
^