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?
magpie
July 24, 2011, 7:57pm
2
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…
magpie
July 25, 2011, 9:52am
3
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…
magpie
July 25, 2011, 9:56am
4
2011/7/25 mr ma [email protected] :
qualcosa del tipo if checked…
grazie Msan M., dovr dare un’occhiata a javascript…
ma perche’ risulta msan msan se ho cambiato le impostazioni in google,
boh.
magpie
July 25, 2011, 9:25pm
5
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
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:
magpie
July 26, 2011, 8:15pm
6
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
magpie
July 26, 2011, 5:28pm
8
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
magpie
July 27, 2011, 4:31pm
9
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
magpie
July 27, 2011, 5:22pm
10
On 27 July 2011 15:58, mr ma [email protected] wrote:
Ma jQuery…
Certo, e’ semplice da usare.
magpie
July 27, 2011, 6:49pm
11
Tutto è semplice quando lo si conosce!
Son 3 pomeriggi che mi studio Javascript…
Se installo jQuery devo cambiare qualcos’altro nel mio progetto?
(non avevo altre funzioni Javascript)
magpie
July 27, 2011, 5:01pm
12
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…)
magpie
July 27, 2011, 7:53pm
13
2011/7/27 mr ma [email protected] :
Tutto semplice quando lo si conosce!
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 ”)
magpie
July 27, 2011, 8:06pm
14
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?
magpie
July 27, 2011, 8:12pm
15
va bene, grazie ancora, spero bene…
magpie
July 27, 2011, 8:09pm
16
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’
magpie
July 28, 2011, 10:20am
17
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! *
magpie
July 28, 2011, 9:43am
18
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! *