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

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



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





กรกฎ วิริยะ 13 Dec 2010 11:47
<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 ทีละตัว
ฟงหวิน ขี่พายุทะลุโกรธ 13 Dec 2010 12:56
ขอบคุณคะมากคะ เดี๋ยวไปเขียนเพิ่มและเช็คเอาคะว่าเป็นปุ่มใด และก็เข้าไปทำ event  ที่ได้ส่งค่ามา
ฟงหวิน ขี่พายุทะลุโกรธ 22 Dec 2010 15:38
อ.คะค่าที่ได้ เป็น 27เราจะเติมเลข 0 ไปให้ครบสี่หลัก โดยต้องเช็คค่าก่อนว่าส่งมาเป็นกี่หลักและค่อยเติม 0 เข้าไปทำอย่างไรคะ
กรกฎ วิริยะ 22 Dec 2010 18:12
ถ้าใช้ GAjax ก็จะมีฟังก์ชั่น leftPad



var d = 27;

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

alert(d);



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



[google]javascript number format[/google]