Portál AbcLinuxu, 25. května 2024 19:08


Dotaz: JQuery, jak nadefinovat selector

14.7.2023 07:12 tom
JQuery, jak nadefinovat selector
Přečteno: 382×
Odpovědět | Admin
Zdravim,

mam tento formular:
<input type="hidden" name="polozka[0][id]" id="polozka_0_id">
<input type="text" name="polozka[0][nazev]" id="polozka_0_nazev">

<input type="hidden" name="polozka[1][id]" id="polozka_1_id">
<input type="text" name="polozka[1][nazev]" id="polozka_1_nazev">

...
A potrebuji aby JQuery na kazdy "nazev" navazal autocomplete, kterym si vyplnim prislusne "id"

Problem je, ze nevim, jak mam nadefinovat ten "selector", aby byl autocomplete na kazdem "nazev" policku, ale vyplnil mi pouze to spravne "id"

Dekuji

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.7.2023 08:50 X
Rozbalit Rozbalit vše Re: JQuery, jak nadefinovat selector
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vyplni id? To je snad unikatni ne? Ten formular je generovany jak? Co je cilem tveho snazeni? Mozna delas neco co se resi jinak, ale nikdo nevi cely kontext problemu.
14.7.2023 11:24 tom
Rozbalit Rozbalit vše Re: JQuery, jak nadefinovat selector
Dobra, zkusim to trochu rozvest

Puvodni formular vypadal takto:
<input type="hidden" name="polozka[id]" id="polozka_id">
<input type="text" name="polozka[nazev]" id="polozka_nazev">
A funkce autocomplete byla definovana takto:
$( "#polozka_nazev" ).autocomplete({
        source: function( request, response ) {
        $.ajax({
            url: "{{ route('polozky.autocomplete') }}",
            type: 'GET',
            dataType: "json",
            data: {
               search: request.term
            },
            success: function( data ) {
               response( data );
            }
          });
        },
        select: function (event, ui) {
           $('#polozka_nazev').val(ui.item.label);
           $('#polozka_id').val(ui.item.id);
           return false;
        }
    });
Pak prisel pozadavek na ukladani vicero polozek. Tak jsem formular upravil na:
<input type="hidden" name="polozka[0][id]" id="polozka_0_id">
<input type="text" name="polozka[0][nazev]" id="polozka_0_nazev">

<input type="hidden" name="polozka[1][id]" id="polozka_1_id">
<input type="text" name="polozka[1][nazev]" id="polozka_1_nazev">

...
Proste "nested array". A ted resim jak upravit ten autocomplete, aby mi napovidani fungovalo u kazdeho "nazev" policka.

Jasne, ze bych mohl ve smycce pro kazde "nazev" policko nadefinovat samostatnou autocomplete funkci, ale to mi prijde trochu overkill.

Verim, ze JQuery je dost chytre na to, aby si poradilo i s takovymto "nested" formularem. Bohuzel se mi nedari najit jak.

Jesli treba existuje neco jako:
$('#polozka_?_nazev' ).autocomplete({ ... })
$('#polozka_?_id').val(ui.item.id);
Diky za vas cas
14.7.2023 11:54 X
Rozbalit Rozbalit vše Re: JQuery, jak nadefinovat selector
Treba tady pomoci tridy.
<input type="hidden" class="autoc" name="polozka[0][id]" id="polozka_0_id">
<input type="hidden" class="autoc" name="polozka[1][id]" id="polozka_1_id">
...
$(".autoc").autocomplete({
  source: function( request, response ) {
  $.ajax({
  ..

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.