Autor Zpráva
kopi
Profil
Zdravím,
může mi někdo poradit, proč mi nefunguje tento případ?

<select name="doba">
   <option value="">Vše</option>
    <option value="12">12 měsíců</option> 
</select>

formulář odesílám pomocí GET a v tomto případě se mi option vůbec neodesílá. Pokud to zadám takto, tak to funguje.

<select name="doba">
   <option value="">Vše</option>
    <option value="12">12</option> 
</select>

Děkuji
Keeehi
Profil
Hodnota optionu (a i celková funkčnost selectu) není závislá na jeho obsahu. Musí fungovat úplně stejně jak první tak i druhý příklad. Teda možnost tu je - máš na stránce nějaký javascript který nějak "vylepšuje" chování selectů. Pak by to teoreticky mohlo něco rozbíjet. Pokud je to ale ten případ, nemůžeme ti více poradit dokud nám neukážeš nějakou stránku, na které to nefunguje.
Bubák
Profil
kopi:
v tomto případě se mi option vůbec neodesílá
Neodesílání jsi zjistil jak? Koukal ses do vývojářských nástrojů? Každopádně jsou obě ukázky funkčně shodné, odesílá se obsah atributu value, obsah elementu option nemá na odesílaná data žádný vliv.
Jako první bych doporučil podívat se ve vývojářských nástrojích, co je v atributu value, zda je tam něco jiného, než ve zdrojáku a pokud ano, zkusit co to udělá po vypnutí javascriptu.
kopi
Profil
Bubák:
Že se neodesílá jsem zjistil z url - form se odesílá pomocí get. takže vidím i hodnotu value v url - teda u druhé varianty. U první varianty se proměnná "doba" vůbec do url nedostane, z toho jsem usoudil, že se to neodeslalo. Asi to bude někde, jak říkal Keeehi nějaký javascript. Zkustím tvoji radu a vypnu ho.


Keeehi:
asi máš pravdu, bez povoleného javascriptu selecty nejdou ani rozvinout.
_es
Profil
kopi:
bez povoleného javascriptu selecty nejdou ani rozvinout.
Tak potom nie je v HTML kóde kód z [#1]. Ten „rozvinout“ ide: Odkaz
kopi
Profil
_es:
já vím, když nechám očesaný select, tak funguje, ale je obalený nějakými JS funkcemi apod. JS bohužel moc neovládám, tak uplně nevím, kde hledat a hlavně co by to mohlo způsobovat


Keeehi:
Může to být něco z tohodle skriptu, co jsem našel v souboru s JS?

/**
Custom select
**/
$.fn.madCustomSelect = function () {

    return this.each(function(){

        var list = $(this).children('ul'),
            select = $(this).find('select'),
            title = $(this).find('.select-title');
     

        // select items to list items

        if($(this).find('[data-filter]').length){
            for(var i = 0,len = select.children('option').length;i < len;i++){
                list.append('<li data-filter="'+select.children('option').eq(i).data('filter')+'">'+select.children('option').eq(i).text()+'</li>')
            }
        }
        else{
            for(var i = 0,len = select.children('option').length;i < len;i++){
                list.append('<li>'+select.children('option').eq(i).text()+'</li>')
            }
        }
        select.hide();

        // open list
        
        title.on('click',function(){
            list.slideToggle(400);
            $(this).toggleClass('active');
        });

        // selected option

        list.on('click','li',function(){
            var val = $(this).text();
            title.text(val);
            list.slideUp(400);
            select.val(val);
            title.toggleClass('active');
            return false;
        });

    });

},
juriad
Profil
kopi:
Ano, v tomto kusu kódu je chyba, jde o řádku 40. Snaží se to nahradit <select> za nějak nastylovaný <ul>, ale dělá to špatně (čehož jsi si už všimnul). Tento kód předpokládá, že value v option je stejné jako text (ve skutečnosti value úplně ignoruje a pak správnou option nenajde.
Můžeš se s tím smířit, nebo se to pokusit opravit (na řádce 17, 22 a 40).
kopi
Profil
juriad:
Díky. Poradíš mi, jak to upravit? já se v JS fakt vůbec nevyznám.
Bubák
Profil
juriad:
Tento kód předpokládá, že value v option je stejné jako text
To je velmi hloupý stupidní předpoklad.
_es
Profil
kopi:
ale je obalený nějakými JS funkcemi apod.
Ako „obalený“? Buď ten kód v HTML je alebo nie je.

JS bohužel moc neovládám
Tak na čo tam ten JS vôbec je a kde sa tam vzal? A čo má robiť? V príbuznom vlákne ( odesílá se proměnná $_GET ve formuláři) ani v tomto (až do [#6]) o nejakom JS nič nie je.
kopi
Profil
_es:
Protože upravuju šablonu. Tady jsme se dobrali k tomu, že jediná možnost, proč to nefunguje je nějaký JS kod, který to ruší. Což jsem našel - jak mi tu potvrdil juriad. Teď jen potřebuju poradit, jak ten JS kod upravit, protože JS neumím.
Tomášeek
Profil
kopi:
Jestli mu nerozumíš a nevíš, kde a jak jej upravit, tak ho smaž. Dělá více problémů než užitku, select bude fungovat i bez něj (navíc lépe, na všech platformách, atp.).
kopi
Profil
Tomášeek:
asi bude jednodušší si nastylovat přes CSS vlastní selecty,vid?
_es
Profil
kopi:
jediná možnost, proč to nefunguje je nějaký JS kod, který to ruší.
Píšeš, že „bez povoleného javascriptu selecty nejdou ani rozvinout.“. Takže ak ti nejdú bez JS „rozvinúť“ dve možnosti "Vše" a "12 měsíců" tak zjavne v HTML kóde posielanom prehliadaču nie je kód z [#1].

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0