mirror of
https://github.com/tiennm99/coolify.git
synced 2026-04-18 13:20:41 +00:00
Fix duplicate HTML ID warnings in form components
Resolve browser console warnings about non-unique HTML IDs when multiple Livewire components with similar form fields appear on the same page. **Problem:** Multiple forms using generic IDs like `id="description"` or `id="name"` caused duplicate ID warnings and potential accessibility/JavaScript issues. **Solution:** - Separate `wire:model` binding name from HTML `id` attribute - Auto-prefix HTML IDs with Livewire component ID for uniqueness - Preserve existing `wire:model` behavior with property names **Implementation:** - Added `$modelBinding` property for wire:model (e.g., "description") - Added `$htmlId` property for unique HTML ID (e.g., "lw-xyz123-description") - Updated render() method to generate unique IDs automatically - Updated all blade templates to use new properties **Components Updated:** - Input (text, password, etc.) - Textarea (including Monaco editor) - Select - Checkbox - Datalist (single & multiple selection) **Result:** ✅ All HTML IDs now unique across page ✅ No console warnings ✅ wire:model bindings work correctly ✅ Validation error messages display correctly ✅ Backward compatible - no changes needed in existing components 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
<div x-data="{
|
||||
open: false,
|
||||
search: '',
|
||||
selected: @entangle($id).live,
|
||||
selected: @entangle($modelBinding).live,
|
||||
options: [],
|
||||
filteredOptions: [],
|
||||
|
||||
@@ -161,7 +161,7 @@
|
||||
<div x-data="{
|
||||
open: false,
|
||||
search: '',
|
||||
selected: @entangle(($attributes->whereStartsWith('wire:model')->first() ? $attributes->wire('model')->value() : $id)).live,
|
||||
selected: @entangle(($attributes->whereStartsWith('wire:model')->first() ? $attributes->wire('model')->value() : $modelBinding)).live,
|
||||
options: [],
|
||||
filteredOptions: [],
|
||||
|
||||
@@ -284,7 +284,7 @@
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@error($id)
|
||||
@error($modelBinding)
|
||||
<label class="label">
|
||||
<span class="text-red-500 label-text-alt">{{ $message }}</span>
|
||||
</label>
|
||||
|
||||
Reference in New Issue
Block a user