Nếu bạn đang sử dụng đầu vào hình thức võ đường và muốn có nhãn cho họ như thế:Clickable võ đường nhãn
<label for="???">Email</label>
<input
type="text"
name="email"
dojoAttachPoint="email"
dojoType="dijit.form.TextBox"
/>
nhãn là không thể nhấp, vì không có cách nào để biết id của input trước nó được trả lại.
Có tồn tại một giải pháp nào khác ngoài việc hack một id trong dojo tạo ra cho phần tử đó không?
CẬP NHẬT
Nó thực sự thậm chí khó khăn hơn tôi nghĩ, vì lĩnh vực đầu vào trong võ đường được kết xuất như
<div class="dijit dijitTextBox" id="widget_dijit_form_TextBox_0">
<input class="dijitReset dijitInputField" value="Χ" type="text" tabindex="-1">
...
</div>
và lĩnh vực đầu vào cơ bản không có một id
Giải pháp này chỉ hoạt động cho các trường hợp đơn giản. Hãy tưởng tượng có một widget với nhãn này và nhập vào mẫu. Bây giờ nếu bạn muốn đặt một số bản sao của cùng một tiện ích này trên cùng một trang, bạn sẽ gặp rắc rối nếu bạn sử dụng id. Nói chung, bạn tránh sử dụng id và sử dụng dojoAttachPoint để tham chiếu đến cá thể cụ thể của phần tử đó từ JS. Về cơ bản nó có vẻ như dijit.form.Label bị thiếu trong thư viện có thể được đính kèm bằng dojoAttachPoint chứ không phải là id, có nghĩa là có thể là lúc để viết một dojox.form.Label;) – Karolis
Vâng, "hack trong dojo id tạo ra" không phải là xấu sau đó: P – hugomg