ขีด จำกัด อักขระใน HTML


คำตอบ:


133

มี 2 ​​วิธีแก้ปัญหาหลัก:

HTML ที่แท้จริง:

<input type="text" id="Textbox" name="Textbox" maxlength="10" />

JavaScript one (แนบกับเหตุการณ์ onKey):

function limitText(limitField, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } 
}

แต่อย่างไรก็ตามไม่มีทางออกที่ดี คุณไม่สามารถปรับตัวให้เข้ากับการใช้ HTML ที่ไม่ดีของลูกค้าทุกรายมันเป็นการต่อสู้ที่เป็นไปไม่ได้ที่จะชนะ นั่นเป็นเหตุผลว่าทำไมจึงควรตรวจสอบที่ฝั่งเซิร์ฟเวอร์ด้วย PHP / Python / สคริปต์ใด ๆ


27
ตรวจสอบเซิร์ฟเวอร์เป็นการตรวจสอบความสมบูรณ์ขั้นสุดท้าย แต่เพิ่มการปรับปรุงฝั่งไคลเอ็นต์หากคุณสามารถทำได้ ทำให้ประสบการณ์การใช้งานที่สมบูรณ์ยิ่งขึ้น
Rob

43

มีแอตทริบิวต์ความยาวสูงสุด

<input type="text" name="textboxname" maxlength="100" />

1
นี่เป็นเรื่องจริง แต่ลูกค้าบางรายไม่ตรวจสอบสิ่งนี้ นี่เป็นเรื่องจริงโดยเฉพาะสำหรับลูกค้าที่ใช้โทรศัพท์มือถือ
Drejc

นอกจากนี้ยังมีวิธีลบออก ตัวอย่างเช่น Firefox Web Developer Extension มีฟังก์ชัน Remove Maximum lengths
Sam Hasler

ด้วยโครเมี่ยมและชุดนักพัฒนา (ซึ่งมาพร้อมกับเบราว์เซอร์) การลบสิ่งเหล่านี้ใน html ทำได้ง่าย
AntonioCS

12

นอกเหนือจากที่กล่าวมาข้างต้นฉันอยากจะชี้ให้เห็นว่าการตรวจสอบความถูกต้องฝั่งไคลเอ็นต์ (โค้ด HTML, จาวาสคริปต์ ฯลฯ ) นั้นไม่เพียงพอ ตรวจสอบความยาวฝั่งเซิร์ฟเวอร์ด้วยหรืออย่าเพิ่งตรวจสอบเลย (ถ้ามันไม่สำคัญถึงขนาดที่ผู้คนจะได้รับอนุญาตให้ไปไหนมาไหนก็ไม่สำคัญพอที่จะรับประกันขั้นตอนใด ๆ เพื่อป้องกันสิ่งนั้นด้วยเช่นกัน)

นอกจากนี้เพื่อนร่วมงานเขา (หรือเธอ) กล่าวว่า HTML ไม่ใช่ XHTML ;)


ฉันเห็นด้วย. หนึ่งสามารถโพสต์ข้อมูลโดยตรงลงในเว็บไซต์โดยใช้เครื่องมือการเขียนสคริปต์บางดังนั้นในกรณีที่ maxlength และการตรวจสอบเบราว์เซอร์ด้านอื่น ๆ ไม่ได้เข้าใจผิด
Cruizer

หรือใช้ firebug และลบแอตทริบิวต์ maxlength
Zach

5

ใช้แอตทริบิวต์ "maxlength" ตามที่คนอื่นพูด

หากคุณต้องการใส่ความยาวอักขระสูงสุดในพื้นที่ข้อความคุณต้องเปลี่ยนเป็น Javascript ดูที่นี่: วิธีกำหนดความยาวสูงสุดให้กับ textArea ใน HTML โดยใช้ JavaScript


ตรวจสอบลิงค์นี้ใน StackOverflow: stackoverflow.com/questions/1125482/…
TlonXP

1

สำหรับองค์ประกอบ <input> มีแอตทริบิวต์ maxlength:

<input type="text" id="Textbox" name="Textbox" maxlength="10" />

(อย่างไรก็ตามประเภทคือ "text" ไม่ใช่ "textbox" อย่างที่คนอื่นเขียน) อย่างไรก็ตามคุณต้องใช้ javascript กับ <textarea> s ไม่ว่าจะด้วยวิธีใดก็ควรตรวจสอบความยาวบนเซิร์ฟเวอร์อยู่ดี


0

คุณสามารถตั้งค่าความยาวสูงสุดด้วย jquery ซึ่งเร็วมาก

jQuery(document).ready(function($){ //fire on DOM ready
 setformfieldsize(jQuery('#comment'), 50, 'charsremain')
})
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.