# \[newbie\] rails&prototype aggiungere classe ad alcuni elementi div

**URL:** <https://www.ruby-forum.com/t/newbie-rails-prototype-aggiungere-classe-ad-alcuni-elementi-div/201935>\
**Category:** IT\
**Created:** [January 18, 2011, 11:10am UTC](https://www.ruby-forum.com/t/newbie-rails-prototype-aggiungere-classe-ad-alcuni-elementi-div/201935 "2011-01-18T11:10:46Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [January 18, 2011, 11:10am UTC](https://www.ruby-forum.com/t/newbie-rails-prototype-aggiungere-classe-ad-alcuni-elementi-div/201935/1 "2011-01-18T11:10:46Z")

</div>

Ciao a tutti  
Domanda da vero newbie, ma ci sto sbattendo la testa da un pò  
nel programmino che sto facendo ho un partial che racchiude una serie di  
form per l’inerimento di dati (cosa molto semplice costruita con uno  
scaffold) in cui ho 2 necessità  
Selezionando un radio\_button:  
nascondere alcuni form  
E di quelli rimasti visibili evidenziarne alcuni in rosso (che poi sono  
campi necessari)

la prima parte mi è riuscita senza problemi ogni form è racchiuso in un  
div con una id diversa per cisascuno

\<%= f.radio\_button :tipo\_record, ‘B’, options = {:onclick =\>  
“[‘form1’,‘form2’].each(Element.show);  
[‘form3’,‘form4’].each(Element.hide);”}

e così via per tutti i radio\_button

Quello che non riesco a fare è di evidenziarli  
ho pensato di usare la funziona di prototype addClassName e specificare  
nel css la classe ‘required’  
e la cosa funziona se gli passo un singolo id in questo modo:

$(‘form1’)addClassName(‘required’) ;

mentre se provo a passargli l’array come ho fatto sopra non c’è verso  
che funzioni

[‘form1’, ‘form2’].each(addClassName(‘required’))

la console di chrome mi restituisce

Uncaught TypeError: Object # has no method ‘call’

spulciando un pò di documentazione ho pensato che non digerisse bene  
l’array, allora ho modificato la sintassi in questo modo

[‘form1’, ‘form2’].each(function(item)  
{item.addClassName(‘required’);})

ma ricevo un errore differente  
Uncaught TypeError: Object form1 has no method ‘addClassName’

ho provato anche a ciclare esplicitamente attraverso un for ma ottendo  
lo stesso errore…  
dove sbaglio?

come mai riesco a modificare la classe di un singolo div ma non riesco a  
passare una sequenza di id alla funzione addClassName?

---

<div class="post-metadata">

**Author:** ![lucac81](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/71e660/32.png) [@lucac81](https://www.ruby-forum.com/u/lucac81)\
**Post date:** [January 18, 2011, 11:50am UTC](https://www.ruby-forum.com/t/newbie-rails-prototype-aggiungere-classe-ad-alcuni-elementi-div/201935/2 "2011-01-18T11:50:15Z")

</div>

$$(’#form1, #form2’).invoke(‘addClassName’, ‘required’)

$$ dati i selettori CSS restituisce una lista di nodi DOM  
invoke chiama un metodo su tutti gli elementi della lista

Antonio B.  
Multicore Sistemi

---

<div class="post-metadata">

**Author:** ![lucac81](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/71e660/32.png) [@lucac81](https://www.ruby-forum.com/u/lucac81)\
**Post date:** [January 18, 2011, 11:58am UTC](https://www.ruby-forum.com/t/newbie-rails-prototype-aggiungere-classe-ad-alcuni-elementi-div/201935/3 "2011-01-18T11:58:02Z")

</div>

Funziona 🙂 grazie, anche se non capisco bene come mai Element.show  
funziona con l’array e addClassName invece no, beh vorrà dire che mi  
documenterò un pò… a proposito guide consigliate sull’argomento?

Grazie Ancora

Luca
