527 messaggi dal 18 dicembre 2012
Ciao a tutti
Ho una CheckBoxList i cui dati sono caricati da codice.
Vorrei leggere con jquery i valori delle checkbox selezionate.
Ho fatto così:

$('[id*="cklPermessi"] :checked').each(function () {
alert($(this).val());
});

ma ricevo sempre come risultato 'on'. Ho cercato un pò e tutti utilizzano questo codice. Ho provato anche ad assegnare un attributo alle checkbox, ma da jquery non riesco a leggerlo.

E' un problema di asp.net o jquery?

Grazie mille
6 messaggi dal 06 luglio 2011
Ciao,
quando da javascript vuoi accedere a valori dei server controls devi ragionare sempre in termini di output, ovvero dell'effettivo contenuto html che verrà generato dal server control a runtime.
Una CheckBoxList come questa ad esempio:
<asp:CheckBoxList ID="myCheckBoxList" runat="server">
            <Items>
                <asp:ListItem Text="Valore 1" Value="1"></asp:ListItem>
                <asp:ListItem Text="Valore 2" Value="2"></asp:ListItem>
                <asp:ListItem Text="Valore 3" Value="3"></asp:ListItem>
            </Items>
</asp:CheckBoxList>

Produce questo output:
<table id="myCheckBoxList">
  <tr>
    <td><input id="myCheckBoxList_0" type="checkbox" name="myCheckBoxList$0" value="1" /><label for="myCheckBoxList_0">Valore 1</label></td>
  </tr><tr>
    <td><input id="myCheckBoxList_1" type="checkbox" name="myCheckBoxList$1" value="2" /><label for="myCheckBoxList_1">Valore 2</label></td>
  </tr><tr>
    <td><input id="myCheckBoxList_2" type="checkbox" name="myCheckBoxList$2" value="3" /><label for="myCheckBoxList_2">Valore 3</label></td>
  </tr>
</table>

Una volta chiara la struttura html nella quale devi navigare con jquery, lo script è piuttosto semplice:
function getCheckboxValues () {

        $('#myCheckBoxList input[type="checkbox"]:checked')
            .each(function () {
            alert($(this).val());
        });
    }

JQuery utilizza gli stessi selettori presenti sui CSS, quindi
puoi applicare selettori di classe, di tipo ecc..anche annidati.

Una cosa a cui devi fare attenzione è l'id del controllo server, che a volte nell'output html non corrisponde a quello impostato da te sul controllo stesso. In questo caso puoi usare la sintassi:
$('#<%=controlloServer.ClientID %>')...

dove ClientID restituisce l'id in output del controllo server.

Spero di esserti stato utile
Ciao
Dario
527 messaggi dal 18 dicembre 2012
Ciao
il problema è che ricevo questo come output e quando vado a leggere mi da on come risultato.

<table border="0" class="list ck_items" id="ctl00_cphContent_cklPermessi">
<tbody><tr>
<td>
<input type="checkbox" name="ctl00$cphContent$cklPermessi$0" id="ctl00_cphContent_cklPermessi_0">
<label for="ctl00_cphContent_cklPermessi_0">Gestione camere</label>
</td>
</tr>
</tbody></table>
6 messaggi dal 06 luglio 2011
Prova questo:

function getCheckboxValues() {

        $('#<%=cklPermessi.ClientID %> input[type="checkbox"]:checked')
            .each(function () {
                alert($(this).val());
            });
    }

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.