Contare le selezioni in un check_box_tag

Ciao a tutti,

ho il seguente codice in new.html.erb che permette ad un utente di
selezionare più domande (item) per comporre un questionario:


<% for item in @itemss %>
<%= check_box_tag “questionnaire[item_ids][]”, item.id,
@questionnaire.items.include?(item) %>
<%= item.kind %> <%= item.question %>
- “<%= item.denomination %>” - p.ti <%= item.score %>

<% end %>

Mi piacerebbe far vedere:

  • il numero degli item selezionati
  • il totale degli score (ogni item ha uno score)
    mano a mano che l’utente sceglie…,

qualche suggerimento?

2011/7/24 mr ma [email protected]:

- "<%= item.denomination %>" - p.ti <%= item.score %> <br/>

<% end %>

Mi piacerebbe far vedere:

  • il numero degli item selezionati

Credo che si potrebbe usare javascript, onchange o oncheck se esiste o
qualcosa del tipo if checked…

Msan M. wrote in post #1012749:

2011/7/24 mr ma

- "<%= item.denomination %>" - p.ti <%= item.score %> <br/>

<% end %>

Mi piacerebbe far vedere:

  • il numero degli item selezionati

Credo che si potrebbe usare javascript, onchange o oncheck se esiste o
qualcosa del tipo if checked…

grazie Msan M., dovrò dare un’occhiata a javascript… :wink:

2011/7/25 mr ma [email protected]:

qualcosa del tipo if checked…

grazie Msan M., dovr dare un’occhiata a javascript… :wink:

ma perche’ risulta msan msan se ho cambiato le impostazioni in google,
boh.

In prototype qualcosa del genere [1], [2]:

$$(“ID-DEL-FORM input[type=checkbox]”).pluck(‘checked’).without(false).size();

Prende i valori di checked e toglie i false.

Puoi scriverla leggermente diversa [3], [4]:

$$(“ID-DEL-FORM input[type=checkbox]”).invoke(‘getValue’).reject(function(v)
{!v}).size();

Prende i valori dell’input e toglie i non veri.

Dovrebbero avere risultati diversi secondo come hai dato i valori
all’input.

Comunque uno spunto per esplorare Prototype :wink:

Ciao,
Antonio B.

[1] Prototype v1.7.3 API documentation | Enumerable#pluck
[2] Prototype v1.7.3 API documentation | Array#without
[3] Prototype v1.7.3 API documentation | Enumerable#invoke
[4] Prototype v1.7.3 API documentation | Enumerable#reject

Il 24/07/2011 19.57, Mauro ha scritto:

2011/7/26 mr ma [email protected]:

- "<%= item.denomination %>" - p.ti <%= item.score %> <br/>

<%= csrf_meta_tag %>
}

...

Grazie a chi ci vorr dare un’occhiata!

$(“input:checkbox:checked”).length

Ma è jQuery…

Ciao Antonio, grazie mille, darò sicuramente un’occhiata a quello che mi
hai suggerito!

Per il momento sono impantanato col mio PRIMO script Javascript, sto
procedendo per gradi e cominciando da una cosa più semplice:
contare le caselle di controllo selezionate e scrivere la somma.
Il problema è che non mi scrive niente, probabilmente sbaglio qualcosa
di
macroscopico

in new.html.erb ho scritto:

SELEZIONE dei QUESITI*:

<% @itemss.each do |item| %> <%= check_box_tag "questionnaire[item_ids][]", item.id, @questionnaire.items.include?(item), :onClick => "calculate();" %>

 <a> <%= item.kind %> <span> <%=  item.question %> </span> </a>
      - "<%=  item.denomination %>" - p.ti <%= item.score %> <br/>
 <% end %>
...

in application.html.erb:

Verifiche OnLine <%= stylesheet_link_tag :all %> <%= javascript_include_tag :defaults %> <%= csrf_meta_tag %> ...

Grazie a chi ci vorrà dare un’occhiata!
Marco

Il 26 luglio 2011 17:28, mr ma [email protected] ha scritto:

boxes = document.getElementById(questionnaire_item_ids_);

Ciao,

document.getElementById richiede una stringa e restituisce esattamente
un nodo oppure null, mai un array.

Certamente puoi scrivere in puro javascript il codice che ti serve, ma
perch? Il mio consiglio di usare le versioni Prototype o jQuery che
ti hanno consigliato altri.

pietro

On 27 July 2011 15:58, mr ma [email protected] wrote:

Ma jQuery…

Certo, e’ semplice da usare.

Tutto è semplice quando lo si conosce! :wink:
Son 3 pomeriggi che mi studio Javascript…

Se installo jQuery devo cambiare qualcos’altro nel mio progetto?
(non avevo altre funzioni Javascript)

Ciao Pietro, grazie!

non sono un programmatore di professione… sono a buon punto di un
progetto Rails3 e mi trovo ad aver bisogno di questa funzione asincrona,
con l’occasione ho dato un’occhiata a Javascript (cosa che volevo fare
da tempo) ed ho scritto il mio primo script… speravo di non dovermi
approcciare anche a jQuery (installazione, sintassi…)

2011/7/27 mr ma [email protected]:

Tutto semplice quando lo si conosce! :wink:
Son 3 pomeriggi che mi studio Javascript…

Se installo jQuery devo cambiare qualcos’altro nel mio progetto?

niente, puoi continuare ad utilizzare javascript senza le funzioni
jquery, diciamo che queste ultime ti facilitano e semplificano lo
sviluppo in javascript.
Se ad esempio ti devi riferire ad un elemento della pagina anziche’
fare document.getElementById(“elemento”) puoi fare direttamente
$(“#elemento”)

Grazie!
allora domani provo, scusa un’ultima domanda, per installare jQuery
nella mia semplice applicazione:

  • scarico la libreria da jquery.com e la metto in public/javascript
  • rimuovo prototype (devo proprio?)
  • in application.html.erb sostituisco con:
    <%= javascript_include_tag ‘jquery’, ‘application’ %>

Non serve usare le gem, giusto? :wink:

va bene, grazie ancora, spero bene…

2011/7/27 mr ma [email protected]:

Grazie!
allora domani provo, scusa un’ultima domanda, per installare jQuery
nella mia semplice applicazione:

gem install ‘jquery-rails’

On 28 July 2011 09:43, mr ma [email protected] wrote:

ALLELUJA, ALLELUJA!!!

Ho installato jQuery e con
n_item = $(“input:checkbox:checked”).length
ho identificato i checkbox selezionati!


  • GRAZIE MILLE A MSAN MSAN, ANTONIO E PIETRO! *

:wink:

ALLELUJA, ALLELUJA!!!

Ho installato jQuery e con
n_item = $(“input:checkbox:checked”).length
ho identificato i checkbox selezionati!


  • GRAZIE MILLE A MSAN MSAN, ANTONIO E PIETRO! *