สอบถามวิธีการจำกัดจำนวนตัวอักษรการกรอก input

พูดคุยแลกเปลี่ยน ปัญหา การเขียน JavaScript เครื่องมือ AJAX Web 2.0 AJAX Framework jQuery และ Node.JS รวมถึง Framework Express ของ Node.JS ทำงานฝั่ง Server

Moderator: mindphp

ภาพประจำตัวสมาชิก
Tookta
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 641
ลงทะเบียนเมื่อ: 12/12/2022 9:12 am

สอบถามวิธีการจำกัดจำนวนตัวอักษรการกรอก input

โพสต์ที่ยังไม่ได้อ่าน โดย Tookta »

ต้องการให้ ช่อง input สามารถกรอกตัวอักษรได้แค่ 10 และ 13 ตัวเท่านั้น
ถ้าไม่ใช่10ตัว และ 13 ตัว จะไม่สามารถกดปุ่ม submit ได้
อาจจะเป็นรูปแบบ popup แจ้งเตือน หรือการ Validation ก็ได้
ควรใช้วิธีไหน หรือใช้ภาษไหนมาช่วยคะ
ขอบคุณค่ะ
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21988
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: สอบถามวิธีการจำกัดจำนวนตัวอักษรการกรอก input

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

ใน HTML จะมี Attribute ของ Input ให้ใช้งานได้อยู่ครับ
min = จำนวนขั้นต่ำที่ต้องกรอก
max = จำนวนสูงสุดที่กรอกได้

ตัวอย่าง

โค้ด: เลือกทั้งหมด

<input type="number" id="no" name="no" min="1" max="10" />

สำหรับ Javascript ตัวอย่างโค้ด

โค้ด: เลือกทั้งหมด

let no = document.getElementById('no').value;
if(no != 10 || no != 13) {
	alert('Error');
}

สำหรับ jQuery ตัวอย่างโค้ด

โค้ด: เลือกทั้งหมด

if($('#no').val() != 10 || $('#no').val() != 13) {
	alert('Error');
}

Javascript หรือ jQuery อาจจะเอาไปเช็คตอนที่กด submit form หรือไม่ก็ดัก event change ของช่อง input ก็ได้ แล้วแต่ประยุกต์ใช้
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
ภาพประจำตัวสมาชิก
Tookta
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 641
ลงทะเบียนเมื่อ: 12/12/2022 9:12 am

Re: สอบถามวิธีการจำกัดจำนวนตัวอักษรการกรอก input

โพสต์ที่ยังไม่ได้อ่าน โดย Tookta »

สามารถทำงานได้แล้วค่ะ โดยใช้วิธีนี้

โค้ด: เลือกทั้งหมด

 <script language="JavaScript">
        function chkString() {
            if (document.frmMain.promptpay.value.length > 13 || document.frmMain.promptpay.value.length < 10 ||
                document.frmMain.promptpay.value.length == 11 || document.frmMain.promptpay.value.length == 12) {
                alert('กรุณากรอกข้อมูล 10 ตัว หรือ 13 ตัวเท่านั้น');
                return false;
            }
        }
    </script>
promptpay คือ name ของ input
frmMain คือชื่อของ form ที่ใช้งาน
ถ้าไม่ใช่10 หรือ 13ตัว จะมีแจ้งเตือน

โค้ด: เลือกทั้งหมด

alert('กรุณากรอกข้อมูล 10 ตัว หรือ 13 ตัวเท่านั้น');
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41230
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: สอบถามวิธีการจำกัดจำนวนตัวอักษรการกรอก input

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ย้ายกระทู้มาหมวดคำถาม
JavaScript & jQuery Ajax & Node.JS
viewforum.php?f=18
เนื่องจาก post ผิดหมวด
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 75