Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505

    Catturare pressione "button" con JQuery

    Nella pagina ho diversi pulsanti definiti con type="button" ma non fanno parte di un form, dovranno attivare diverse funzioni alla loro pressione.

    Come catturo la loro pressione con jqery? Hanno tutti id="assegna", per fare una prova ho provato con
    codice:
    $(document).ready(function(){
    	$("button[id='assegna']").click(function(){
    		alert("pippo");
    	});
    });
    ma l'alert non appare

  2. #2

    Re: Catturare pressione "button" con JQuery

    Originariamente inviato da Alhazred
    Nella pagina ho diversi pulsanti definiti con type="button" ma non fanno parte di un form, dovranno attivare diverse funzioni alla loro pressione.

    Come catturo la loro pressione con jqery? Hanno tutti id="assegna", per fare una prova ho provato con
    codice:
    $(document).ready(function(){
    	$("button[id='assegna']").click(function(){
    		alert("pippo");
    	});
    });
    ma l'alert non appare
    se hanno tutti id="assegna" è difficile che funzioni, l'id deve essere unico all'interno di una pagina, cioè deve averlo un solo elemento.
    usa una classe, cioè class="assegna" e sostituisci il codice con $('button.assegna').click ecc ecc

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Ho provato a fare come dici, ora il codice è così
    codice:
    $(document).ready(function(){
    	$('button.assegna').click(function(){
    		alert("Pippo");
    	});
    });
    ed i pulsanti hanno tutti class="assegna", ma continua a non apparire l'alert.

  4. #4
    potresti incollare anche il codice html?

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    I pulsanti appaiono tutti in questo modo nella pagina
    Codice PHP:
    <td align="left">
        <select class="cf_inputbox" id="revisori_<?php echo $i ?>" size="1" title=""  name="revisori">
            <option value="">Seleziona</option>
            <?php
            $sql 
    "SELECT name FROM jos_users WHERE usertype='Manager' ORDER BY name";
            
    $result mysql_query($sql);
            while(
    $revisore mysql_fetch_assoc($result)) {
                echo 
    "<option value='".$revisore['name']."'>".$revisore['name']."</option>";
            }
            
    ?>
        </select>


        <input type="button" class="assegna" name="revisori_<?php echo $i ?>" value="Assegna"/>
    </td>

  6. #6
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    Senza tonellate di JQuery.
    E con un if-statement che considera gli id; che possono rimanere omonimi.
    codice:
    <script>
    
    function handleClick(){
     var inp = document.getElementsByTagName("input");
     for(i=0; i<inp.length; i++){
         if(inp[i].id == "assegna"){
    	inp[i].onclick = function(){
    		alert("pippo");
    	};
         };
     };
     }
    </script>
    <body onload="handleClick();">
    
    <input id="assegna" type="button">
    <input id="assegna" type="button">
    <input id="assegna" type="button">
    <input id="assegna" type="button">
    </body>

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Non posso, non ho controllo sul tag <body>, sto modificando un componente di Joomla.

  8. #8
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    codice:
    window.onload = function(){handleClick()};
    </script>
    <body>
    Attenzione che se c'é già un altro window.onload nella pagina, entrano in conflitto.

  9. #9
    Originariamente inviato da Alhazred
    Codice PHP:
        <input type="button" class="assegna" name="revisori_<?php echo $i ?>" value="Assegna"/>
    immaginavo fosse questo il "problema"

    il tuo pulsante non è un <button /> ma un <input type="button" />, quindi l'espressione da usare con jQuery è $('input.assegna') o semplicemente $('.assegna') anziché $('button.assegna').

    @Enzaccio: gli id "omonimi" sono sicuramente una pratica da sconsigliare

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Grazie

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.