การนับจำนวน textbox ในฟอร์ม

มีคำถามจากบอร์ดถึงการนับจำนวน textbox ทั้งหมดในฟอร์ม
<form id=test_form>
<input type=checkbox>
<input type=text>
<input type=text>
<input type=submit>
</form>

ฟอร์มที่ใช้ในการทดสอบ ผมจำลองให้มี input หลายๆแบบเพื่ออธิบายการเลือกเฉพาะ input ที่ต้องการ
<script>
// ตัวแปรเก็บจำนวน text
var text = 0;
// อ่าน form จาก id
var form = document.getElementById('test_form');
// อ่าน input ทั้งหมดบน form
var inputs = form.getElementsByTagName('input');
// alert(inputs.length);
for (var i = 0 ; i < inputs.length ; i++) {
   var input = inputs[i];
   var typ = input.getAttribute('type').toLowerCase();
   if (typ == 'text') {
     text++;
   }
}
alert('Input ชนิด text ทั้งหมด ' + text);
</script>

โค้ด ด้านบนจะนับเฉพาะ input ที่เป็น text เท่านั้นครับ ถ้าต้องการเลือกเป็น input ชนิดอื่นๆ ก็ลองดัดแปลงกันดู

ในกรณีที่ต้องการนับเฉพาะ input ตัวที่ยังไม่ได้กรอกก็สามารถตรวจสอบเพิ่มเติมได้ครับ

   if (typ == 'text' && input.value == '') { // input ชนิด text และ ยังไม่ได้กรอกค่า
     text++;
   }
</script>
ผู้เขียน goragod โพสต์เมื่อ 12 ก.พ. 2555 เปิดดู 12,570 ป้ายกำกับ FormJavascript
^