45 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <div class="w-full">
 | |
|     <label>
 | |
|         @if ($label)
 | |
|             {{ $label }}
 | |
|             @if ($required)
 | |
|                 <x-highlighted text="*" />
 | |
|             @endif
 | |
|             @if ($helper)
 | |
|                 <x-helper :helper="$helper" />
 | |
|             @endif
 | |
|         @endif
 | |
|         <input list={{ $id }} {{ $attributes->merge(['class' => $defaultClass]) }} @required($required)
 | |
|             wire:dirty.class.remove='dark:text-white' wire:dirty.class="text-black bg-warning" wire:loading.attr="disabled"
 | |
|             name={{ $id }}
 | |
|             @if ($attributes->whereStartsWith('wire:model')->first()) {{ $attributes->whereStartsWith('wire:model')->first() }} @else wire:model={{ $id }} @endif
 | |
|             @if ($attributes->whereStartsWith('onUpdate')->first()) wire:change={{ $attributes->whereStartsWith('onUpdate')->first() }} wire:keydown.enter={{ $attributes->whereStartsWith('onUpdate')->first() }} wire:blur={{ $attributes->whereStartsWith('onUpdate')->first() }} @else wire:change={{ $id }} wire:blur={{ $id }} wire:keydown.enter={{ $id }} @endif>
 | |
|         <datalist id={{ $id }}>
 | |
|             {{ $slot }}
 | |
|         </datalist>
 | |
|     </label>
 | |
|     @error($id)
 | |
|         <label class="label">
 | |
|             <span class="text-red-500 label-text-alt">{{ $message }}</span>
 | |
|         </label>
 | |
|     @enderror
 | |
|     {{-- <script>
 | |
|         const input = document.querySelector(`input[list={{ $id }}]`);
 | |
|         input.addEventListener('focus', function(e) {
 | |
|             const input = e.target.value;
 | |
|             const datalist = document.getElementById('{{ $id }}');
 | |
|             if (datalist.options) {
 | |
|                 for (let option of datalist.options) {
 | |
|                     // change background color to red on all options
 | |
|                     option.style.display = "none";
 | |
|                     if (option.value.includes(input)) {
 | |
|                         option.style.display = "block";
 | |
|                     }
 | |
| 
 | |
| 
 | |
|                 }
 | |
|             }
 | |
|         });
 | |
|     </script> --}}
 | |
| </div>
 | 
