การตรวจสอบกลุ่มช่องทำเครื่องหมายฝั่งไคลเอ็นต์ Joomla 3

ฉันกำลังพยายามใช้เครื่องมือตรวจสอบแบบฟอร์มในตัวของ Joomla (เวอร์ชัน 3.4.3): JHTML::_('behavior.formvalidator');

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

<label title="Checked out?" class="hasTooltip required" for="jform_checked-out_cbv_qwq4-473" id="checked-out_cbv_qwq4-473-lbl">Checked out? <span class="star">*</span></label>
<input type="checkbox" name="checked-out_cbv_qwq4-473[]" id="checked-out_cbv_qwq4-473" value="Yes" class="required" aria-required="true" required="required"> Yes
<input type="checkbox" name="checked-out_cbv_qwq4-473[]" id="checked-out_cbv_qwq4-473" value="No" class="required" aria-required="true" required="required"> No
<input type="checkbox" name="checked-out_cbv_qwq4-473[]" id="checked-out_cbv_qwq4-473" value="maybe" class="required" aria-required="true" required="required"> maybe
<input type="checkbox" name="checked-out_cbv_qwq4-473[]" id="checked-out_cbv_qwq4-473" value="of course not" class="required" aria-required="true" required="required"> of course not

เมื่อฉันพยายามส่งแบบฟอร์ม ฉันได้รับข้อความแสดงข้อผิดพลาดเหล่านี้:

ช่องไม่ถูกต้อง: เช็คเอาท์แล้วใช่ไหม
ช่องไม่ถูกต้อง: เช็คเอาท์แล้ว?
ช่องไม่ถูกต้อง: เช็คเอาท์แล้ว
ช่องไม่ถูกต้อง: เช็คเอาท์แล้ว?

ฉันทำอะไรผิดที่นี่?


person gtsongi    schedule 03.08.2015    source แหล่งที่มา


คำตอบ (1)


องค์ประกอบอินพุตแต่ละรายการของคุณมีรหัสเดียวกัน ซึ่งก็คือ "checked-out_cbv_qwq4-473" แอตทริบิวต์ id ไม่ควรซ้ำกัน

โค้ดตัวอย่างของ fieldset พร้อมช่องทำเครื่องหมาย:

<div class="control-group">
<div class="control-label">
    <label id="mycheckboxes-lbl" for="mycheckboxes" class="required">Checked out?<span class="star">&nbsp;*</span></label>
</div>
<div class="controls">
    <fieldset id="mycheckboxes" class="checkboxes required" required="required" aria-required="true">
        <ul>
            <li>
                <input type="checkbox" id="checkbox_1" name="myform_checkboxes[]" value="Yes">
                <label for="checkbox_1">Yes</label>
            </li>
            <li>
                <input type="checkbox" id="checkbox_2" name="myform_checkboxes[]" value="No">
                <label for="checkbox_2">No</label>
            </li>
            ...
        </ul>
    </fieldset>
</div>

person arbogastes    schedule 04.08.2015
comment
ใช่ ฉันคิดอย่างนั้น แต่ถ้าฉันกำหนด ID เฉพาะให้กับทุกช่องทำเครื่องหมาย ID ของป้ายกำกับควรเป็นอย่างไร ฉันคิดว่าควรจะคล้ายกันเพื่อแสดงฟิลด์ไม่ถูกต้อง: เช็คเอาท์แล้ว? ข้อความผิดพลาด. หรือฉันคิดผิด? - person gtsongi; 04.08.2015
comment
เช็คเอาท์? label ควรเป็นของ fieldset, fieldset นั้นควรมีช่องทำเครื่องหมายของคุณ, ทุกช่องทำเครื่องหมายควรมีป้ายกำกับของตัวเอง Fieldset ไม่ควรจำเป็นต้องมีทุกช่องทำเครื่องหมาย - person arbogastes; 04.08.2015