Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199

    [JS] Conflitto tra onclick

    Buonasera a tutti


    Questa è la mia situazione:

    codice:
    <div id="action">
    <table width="70%" align="center" border="0" cellpadding="0" cellspacing="0" height="34px"> 
    <tr>
    <td id="action_fin" class="confirm" width="20%" onclick="document['fin_ok'].submit()">Conferma[img]../images/check.png[/img]</td>
    <td width="15%"></td>
    <td id="action_fin" onclick="$('#fin_window, #overlay').fadeOut('fast')" width="16%">Annulla[img]../images/cancel.png[/img]</td>
    </tr>
    </table>
    </div>
    Inoltre c'è da dire che io ho 4 link, generati dinamicamente, aventi lo stesso ID (fin_window) e che aprono un popup nel quale viene mostrato un contenuto generato dinamicamente tramite AJAX diverso da tutti e 4, ma che in fondo hanno tutti questa stessa tabella.

    Il tasto submit e annulla fanno il loro dovere finchè opero su una scheda unica. Se faccio submit su una scheda, poi ne apro un'altra e faccio ancora submit, funziona senza problemi. Ma se apro la scheda n° 3 (per esempio), clicco annulla (chiudendo la scheda), poi apro un'altra (es. la n° 1) il submit non funziona più, posso solo cliccare ancora su annulla.

    Perché diamine si comporta così??? Dov'è il conflitto???

    Grazie in anticipo per il vostro aiuto!

    Ciao

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Premesso che non è chiara l'operazione, un conflitto è avere 4 ID uguali gli ID devono di regola essere univoci, mi sembra di capire che il tutto dinamicamente lato server gli ID fin_window diventino fin_window1 fin_window2 etc.. Se non risolvi posta un link alla pagina demo pubblica (tuo sito.xx/pagimademo.php)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199
    Grazie Andrea della risposta.

    Molto probabilmente il conflitto è dovuto a quello, ma purtroppo non sono così bravo per ottenere quel che voglio con 4 ID diversi.
    In ogni caso il comportamento è strano, nel senso che se ci fosse un conflitto del genere non dovrebbe farmi fare proprio niente, non alcune cose si altre no, credo.

    Cmq alla fine ho risolto mettendo un refresh sul tasto annulla. Così mi chiude il popup, annullando le scelte fatte all'interno ed non mi da nessun effetto collaterale...a mali estremi, estremi rimedi!!!

    Grazie ancora per l'interessamento.

    Ciao.

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Contento te, certo che lo trovo un po' assurdo usare Ajax per non ricaricare la pagina, poi per far funzionare il tutto faccio un Reload perché non sono in grado di risolvere il problema.


    P.S. Riflessione sicuro di voler fare il webmuster (come dice mia moglie) così? In tutti casi Buone Feste
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199
    Certo, è giustissima la tua osservazione, usare Ajax e un reload è una bella contraddizione, ma la questione è che il problema non riesco a risolverlo e non so come spiegarlo qui meglio di quanto ho già fatto. Di postare il codice non credo che sia utile dal momento che è un intreccio di php/js/ajax, lungo, intricato e che coinvolge più pagine.

    Cmq devo correggermi su un punto fondamentale: i 4 link non hanno lo stesso ID (novizio si, ma mica ), lo stesso ID lo ha quel #fin_window, ma non può essere diversamente perchè è sempre la stessa finestra "popup" (o forse meglio dire tipo lightbox) che si apre nel quale cambia il contenuto e dove all'interno c'è quella tabella sotto riportata.

    Cmq, grazie del supporto e buone feste anche a te!

    Ciao

    PS: aggiungo un particolare: se sostituisco l'onclick del submit con un submit vero il problema non si propone più, per cui è quel codice JS a creare il conflitto.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199
    PROBLEMA RISOLTO:

    io avrò anche i miei limiti, ma se in giro si trovano script che funzionano quando gli apre a loro non è mica colpa mia!!!

    Ho sostituito:
    codice:
    onclick="document['fin_ok'].submit()
    Con:
    codice:
    onclick="document.getElementById('fin_ok').submit()
    Solo a me sembra assurdo che uno funzioni e l'altro fa come gli pare o c'è una ragione logica?

    CIAOOO



    PS: grazie Andrea, se non avessi messo in risalto la mia vana ambizione di diventare un webmUster avrei continuato a fare il reload!!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    199
    PROBLEMA NON RISOLTO:

    ad onor di cronaca (lo scrivo perchè potrebbe essere un caso interessante): sono tornato al RELOAD, perchè, se è vero che ho risolto il problema del submit, non mi ero accorto di un altro, ben più grave. Cerco di spiegare meglio la situazione:

    (facciamo finta che stiamo parlando di vestiti, per semplificare)
    pagina A
    link A-1, link B-1, link C-1, link D-1 (ID univoci) che sono 4 prezzi riferiti ai materiali:
    tipo cotone 30€, lana 50€, pail 60 €, velluto 80€

    cliccando su qualsiasi di essi si apre il lightbox nel quale mi appare un div che mostra i colori del tessuto del tipo di vestito scelto (script ajax/php con richiamo dei dati dal database). Scelto il colore del tessuto appare un altro div che mi mostra i colori abbinati dei bottoni (tramite un'altra chiamata ajax/php), dopo ancora lo stesso procedimento per il colore del colletto.
    Dal momento che non posso permettere di far scegliere al cliente una vestito parzialmente definito con la tabella di sotto, ho disabilitato il tasto conferma finchè non si arriva alla scelta del colletto. Però permetto anche all'utente di uscire da questa finestra con il tasto annulla o premendo ESC o cliccando sul DIV overlay di contorno.
    Ed ecco il problema: cliccando su annulla al link A-1, per poi passare al link B-1, mi apre il lightbox, mi mostra i colori del tessuto, ma non mi apre più quelli successivi. Però, ed è qui la cosa strana, se io apro il link D-1, lo chiudo con annulla, e poi apro uno di quelli sopra tutto funziona bene, quindi, a scendere non funziona, a salire si (almeno fino ad A-1 perchè poi, annullando questo, che è il primo, si blocca di nuovo tutto quanto).
    Non capisco dove sia il problema, è come se ajax si intasasse dei dati di quello/i precedente/i bloccandosi.

    Per terminare la spiegazione del funzionamento (magari potrebbe tornare utile a capire il problema) quando si clicca su un particolare (vestito, bottoni, colletto) il codice del colore scelto di ogni particolare viene riportato (sempre ajax/php) dentro un campo hidden di un form alla fine del lightbox. Scelto tutto si clicca su conferma (il submit) e, in base alla combinazione dei codici dei singoli particolari, esce fuori il codice relativo.

    Più chiaro di così proprio no riesco ad essere. Spero serva per farvi avere un'idea di ciò che ho fatto e spero che vi aiuti ad aiutarmi...intanto vado avanti con il reload (perchè con questo il problema si supera, probabilmente "stasando" AJAX!!!)

    Grazie e ciao!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.