ฉันสามารถระบุความยาวสูงสุดใน css ได้หรือไม่?


85

ฉันสามารถแทนที่แอตทริบิวต์ maxlength ด้วยบางสิ่งใน CSS ได้หรือไม่

<input type='text' id="phone_extension" maxlength="4" />

คำตอบ:


69

ไม่จำเป็นต้องทำใน HTML คุณสามารถตั้งค่าด้วย Javascript ได้หากต้องการ


127

ไม่

ความยาวสูงสุดมีไว้สำหรับพฤติกรรม

CSS มีไว้สำหรับจัดแต่งทรงผม

นั่นคือเหตุผล


นอกจากนี้ CSS ยังสามารถใช้ globaly กับแท็กใดก็ได้ดังนั้นจึงไม่สมเหตุสมผลที่จะใช้คุณสมบัติ maxlength กับ div หรือ img เป็นต้น
Dan Diplo

5
แต่จะเกิดอะไรขึ้นถ้าคุณต้องการใช้คุณสมบัติ maxlength กับชุดประเภทอินพุตทั่วไป (เช่นชื่อเมืองรัฐ) และคุณสามารถมีอินพุตเหล่านั้นได้หลายอินสแตนซ์ในที่ต่างๆผ่านทางเว็บไซต์ มันจะดีมากที่สามารถกำหนดคลาส (เช่น 'FirstName') และใช้คลาสนั้นกับอินพุตชื่อทั้งหมด <Input class = "FirstName">
Catchops

@Catchops นั่นเป็นข้อ จำกัด ของ HTML และการใช้ CSS เพื่อแก้ไขปัญหานี้จะเป็นการแฮ็กที่น่าเกลียด นั่นเป็นเหตุผลที่เว็บเฟรมเวิร์กส่วนใหญ่จัดเตรียมระบบเทมเพลตที่มีส่วนประกอบแบบกำหนดเอง
Gabriel


6

ฉันไม่คิดว่าคุณจะทำได้และ CSS ควรจะอธิบายลักษณะของหน้าเว็บไม่ใช่สิ่งที่เป็นดังนั้นแม้ว่าคุณจะทำได้ แต่ก็ไม่ใช่วิธีที่คุณควรใช้

บางทีคุณควรคิดถึงการใช้ JQuery เพื่อใช้ฟังก์ชันทั่วไปกับส่วนประกอบฟอร์มของคุณหรือไม่?



3

ไม่ใช่ด้วย CSS แต่คุณสามารถจำลองและขยาย / ปรับแต่งพฤติกรรมที่ต้องการได้ด้วย JavaScript


2

ตามที่คนอื่นตอบไม่มีวิธีปัจจุบันในการเพิ่มความยาวสูงสุดให้กับคลาส CSS โดยตรง

อย่างไรก็ตามโซลูชันที่สร้างสรรค์นี้สามารถบรรลุสิ่งที่คุณกำลังมองหาได้

ฉันมี jQuery ในไฟล์ชื่อ maxLengths.js ซึ่งฉันอ้างอิงในไซต์ (site.master สำหรับ ASP)

เรียกใช้ตัวอย่างข้อมูลเพื่อดูการทำงานใช้งานได้ดี

jquery, css, html:

$(function () {
    $(".maxLenAddress1").keypress(function (event) {

        if ($(this).val().length == 5) { /* obv 5 is too small for an address field, just want to use as an example though */
            return false;
        } else {
            return true;
        }

    });
});
.maxLenAddress1{} /* this is here mostly for intellisense usage, but can be altered if you like */
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<input type="text" class="maxLenAddress1" />

ข้อดีของการใช้สิ่งนี้: หากมีการกำหนดความยาวสูงสุดสำหรับฟิลด์ประเภทนี้จะต้องถูกผลักออกหรือในแอปพลิเคชันทั้งหมดของคุณคุณสามารถเปลี่ยนได้ในจุดเดียว มีประโยชน์สำหรับความยาวฟิลด์สำหรับสิ่งต่างๆเช่นรหัสลูกค้าฟิลด์ชื่อเต็มฟิลด์อีเมลฟิลด์ใด ๆ ที่ใช้กันทั่วไปในแอปพลิเคชันของคุณ


1
รหัสนี้คัดลอกและวางได้ง่ายมากสำหรับฟิลด์หลายประเภท ฉันเก็บไฟล์ jQuery แยกต่างหากชื่อ "maxLengths.js" และรวมไว้ในเว็บไซต์หลักของฉัน ลองเลยสะดวกมาก!
Taylor Brown

เพียงเพราะคุณใช้คลาส HTML ไม่ใช่ CSS
nyuszika7h

@ nyuszika7h ขอบคุณสำหรับข้อมูลที่คุณชื่นชมมากสำหรับคำตอบของฉัน ฉันจะเถียงในขณะที่ฉันไม่ได้ใช้สไตล์ใด ๆ กับองค์ประกอบฉันยังคงใช้สไตล์ชีตแบบเรียงซ้อนในโซลูชันของฉันดังนั้นจึงใช้ CSS นอกจากนี้ฉันได้อัปเดตคำตอบเพื่อให้สอดคล้องกับข้อสังเกตของคุณ
Taylor Brown

1

ใช้$("input").attr("maxlength", 4) หากคุณใช้ jQuery เวอร์ชัน <1.6 และ$("input").prop("maxLength", 4) หากคุณใช้ jQuery เวอร์ชัน 1.6 ขึ้นไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.