Autocomplete mellé klikkelés megakadályozása

Autocomplete mellé klikkelés megakadályozása
2021-02-07T14:49:33+01:00
2021-02-09T17:53:14+01:00
2022-10-15T21:26:27+02:00
kalmarr
Sziasztok,

lehet nem a legjobb megoldást választottam erre a feladatra, de sok időt beleöltem már.

A problémám, hogy az adatokat Ajax meghíváson keresztül töltöm bele az alábbi scriptbe. (Lehet azt se szépen teszem, de működik) :)
How To Create Autocomplete on an Input Field

A fő gondom ezzel, az hogy mellé is lehet kattintani a kiválasztás helyett. Pl: gépelem "hu" és az űrlap mellé kattintok, akkor a mezőben nem a Hungary jelenik meg, hanem csak a "hu".

Az említett Ajax meghívás miatt hiába ellenőrzöm le elküldéskor a mezőket. Mire lefut az ellenőrzés az adatok elküldi. Az input mezőben lévő név igaz mindegy, mert nekem az adott ország ID-je, kell, amit szépen kitudok gyűjteni, maximum rossz ország id-je kerül bele, ami módosítható lesz később.
Ez a hiba pusztán engem zavar, hogy nem tudom elkapni az űrlapot.

Ebből adódóan lehet egyszerűbb megoldás lenne, hogy valahogy blokkoljam a legördülő neveket addig, amíg egyet ki nem választja. Kérdésem, hogy ezt hogyan lehetne megoldani (van-e rá valami egyszerű dolog)?

Köszi!

Kalmi
Mutasd a teljes hozzászólást!
Szia!

Én inkább select2-t használnék az autocomplete helyett és a mező required.
Dropdown
Mutasd a teljes hozzászólást!

  • Szia!

    Bár nem írtad, hogy használsz-e framework-ot, akkor is hasznodra válhat!

    Első
    Második
    Harmadik
    Negyedik

    Szerintem a legjobb tananyag a CodeCourse.
    Angol középfok szükséges.

    Üdv.: Zsolti_Net
    Mutasd a teljes hozzászólást!
  • Szia!

    Én inkább select2-t használnék az autocomplete helyett és a mező required.
    Dropdown
    Mutasd a teljes hozzászólást!
  • Köszönöm, mindenkinek a segítségét, de heggesztetten a kódon egy kicsit és működik.

    Legközelebb lehet majd más megoldást választok :)
    Mutasd a teljes hozzászólást!
  • Hali!

    Ez így nulla, semmi. Így értelmetlen a saját hozzászólásod elfogadása megoldásként, ugyanis semmi megoldást nem tartalmaz. Éppen ezért, a válasz-elfogadást érvénytelenítettem.

    Mutasd a teljes hozzászólást!
  • Jogos! A megoldáson sokat dolgoztam, de végül nagyon kreatív megoldásom nem lett.... nem igazán jó a szkript erre, de fából vaskarikát csináltam.

    Két fő ötletem lett.

    Ha kattint a user, akkor tartalomtól függően, nulla értéket ad az input mezőnek.

    Továbbá írtam két funtciont, ami vissza ellenőrzi az id-t az input mező értékével.

    function formIDCheck() { for (i = 0; i < arr.length; i++){ if (inp.value === arr
    ) {$(inputID).val(i+1); i=arr.length; document.getElementById(inputTXT).style.backgroundColor = "white"; document.getElementById(inputTXT).blur(); formOK = true; } else {formOK=false;} } return formOK; } function formOKCheck(formOK) { if (formOK===false){ document.getElementById(inputTXT).style.backgroundColor = "WhiteSmoke"; document.getElementById(inputTXT).focus(); } }
    Mutasd a teljes hozzászólást!
  • Csak nem hagyott nyugodni a dolog, ezért a select2 is megnéztem. A modall adott egy kis fejtörést, de azt a gondot is sikerült leküzdeni. Amit nem értek, hogy hogyan kéred le a kiválasztott értéket?
    Az adatokat sikerül betöltenem szabvány szerint a selectbe, de a kiválasztott értéket nem tudom vissza kapni (tuti nem látom a fátol az erdőt):

    Adatbetöltés:
    Arrays

    Találtam favágós módszert, de azt gondolom ez nem a "szabvány" szerinti :)

    $(autocompleteText).append("<option value="+i+">"+ autocompleteJSON
    [JSONTable] +"</option>");

    Ekkor a value értéket egy $(autocompleteText).val() letudom kérni, amire igazából szükségem van, de feltételezem a készítői nem pont erre a megoldásra gondoltak :)
    Mutasd a teljes hozzászólást!
  • Ez is meg lett :)

    Ha értéket akarok változtatni:

    $('#Options').val('100'); $('#Options').trigger('change');
    Ha le akarok kérdezni:

    console.log($('#Options').find(':selected').val());
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd