# Unobtrusive javascript ok, ma

**URL:** <https://www.ruby-forum.com/t/unobtrusive-javascript-ok-ma/200857>\
**Category:** IT\
**Created:** [December 23, 2010, 11:13am UTC](https://www.ruby-forum.com/t/unobtrusive-javascript-ok-ma/200857 "2010-12-23T11:13:22Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dobai-Pataky\_BSSSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/77aa72/32.png) [@Dobai-Pataky\_BSSSSl](https://www.ruby-forum.com/u/Dobai-Pataky_BSSSSl)\
**Post date:** [December 23, 2010, 11:13am UTC](https://www.ruby-forum.com/t/unobtrusive-javascript-ok-ma/200857/1 "2010-12-23T11:13:22Z")

</div>

Qualche volta non si puo’ fare a meno di mischiare javascript nelle  
pagine html e a tal proposito trovavo molto utili le vecchie e ormai  
deprecate istruzioni quali observe\_field, ecc.  
Facco un esempio sperando magari nel suggerimento di una soluzione  
piu’ elegante:  
ho due pagine che hanno lo stesso layout, in tale layout richiamo un  
file js che contiene il seguente codice:

jQuery(document).ready(function($) {  
$("#category\_sector\_id").observe\_field(1, function() {  
$.post(’/albo/filter\_category\_in\_sector’, {sector\_id:  
$(’#category\_sector\_id’).val()}, function(data) {  
$("#category\_update").html(data);  
});  
});  
});

Questo codice viene eseguito quando cambia il contenuto di questa  
select\_collection:

\<%= collection\_select “category”, :sector\_id, @sectors, :id,  
:name,…

Se nell’altra pagina, che condivide lo stesso layout ho la stessa  
collection\_select viene eseguito il codice contenuto nel js ma  
anziche’ chiamare albo/filter\_category\_in\_sector vorrei chiamare un  
altro metodo.  
L’unica soluzione mi pare quella di mettere il codice javascript  
all’interno delle singole pagine, o no?

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [December 23, 2010, 11:17am UTC](https://www.ruby-forum.com/t/unobtrusive-javascript-ok-ma/200857/2 "2010-12-23T11:17:08Z")

</div>

> Se nell’altra pagina, che condivide lo stesso layout ho la stessa  
> collection\_select viene eseguito il codice contenuto nel js ma  
> anziche’ chiamare albo/filter\_category\_in\_sector vorrei chiamare un  
> altro metodo.  
> L’unica soluzione mi pare quella di mettere il codice javascript  
> all’interno delle singole pagine, o no?

io useri gli attributi “data-” per settare l’url, cos se ognuno ha il  
suo.Invece di scrivere l’url a mano nella chiamata ajax, puoi scrivere  
$(“#field”).attr(“data-url”).  
Se invece all’interno di un form, prendi l’url del form.

–  
Andrea F.

> **[Gravityblast - dev blog by Andrea Franz](https://gravityblast.com/)**
>
> dev blog by Andrea Franz

> **[InstaLyrics.com is for sale | HugeDomains](https://www.hugedomains.com/domain_profile.cfm?d=instalyrics.com)**
>
> We help you acquire the perfect domain for your site. Affordable payment options. Quick and responsive customer support available.
