Oppure

Loading
11/11/13 16:24
WillyVB
Salve,

Vorrei sapere nei dettagli come posso strutturare una combobox su pagina .html e codice su un file denominato "common.js"

il pseudo codice da me scritto è il seguente:

Richiamo file js
<script type="text/javascript" src="/js/common.js"></script>


Strutturazione combobox
<form name="combocost">
							<select name="combocost" onchange="notContains()">
							<option value="Val1">Val1</option>
							<option value="Val1">Val2</option>
							</select>
</form>	 


Codice su file JS
    $('#notContains').change( function() {
        f = document.form1;
        $('td:first-child').parent('tr:not(:contains("f.combocost.options[f.combocost.selectedIndex].value"))').toggle();
    });



In pratica io ho un html su cui appare una tabella creata tramite un'altra pagina php, il tutto con l'ausilio del file common.js

Avrei necessità di nascondere le righe in cui non è presente un dato valore, per questo ho pensato nel selezionare questo valore tramite combobox, ma il tutto non funziona, qualche aiuto?
aaa
11/11/13 19:31
GN
Il problema è che stai mischiando javascript puro e i costrutti della libreria jquery. Innanzitutto non devi dare lo stesso nome al form e al select (quindi, rinomina il form ad esempio in form_combocost); poi, dato che stai evidentemente usando jquery (a proposito, non è che hai scordato di includerla?), non serve usare l'onclick, devi invece sostituire
$('#notContains')
con
$('#combocost')

(Come spiegato qui api.jquery.com/change/)
aaa
12/11/13 15:34
WillyVB
la libreria jquery è inclusa

Ho apportato tali modifiche

Richiamo libreria jquery su districts.html
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>


Richiamo file common.js su districts.html
<script type="text/javascript" src="/js/common.js"></script>


Form su districts.html
<form name="form_comboCost">
             <select name="comboCost">
                   <option value="Val1">Elfrard</option>
                   <option value="Val1">Eoldulf</option>
              </select>
</form>



Funzione comboCost sul file common.js
$('#comboCost').change( function() {
        $('td').parent('tr:not(:contains("form_comboCost.options[form_comboCost.selectedIndex].value"))').toggle();
    });



ma non va.... dove sbaglio?
aaa
12/11/13 18:57
GN
Scusa prima mi erodimenticato di dirti che tutto il js va racchiuso in
$(document).ready(function(){
//qui
});
aaa
12/11/13 20:49
WillyVB
Scusa se disturbo, non sono molto pratico di questi linguaggi (preferisco quelli gestionali xD)

in pratica cosi?

$(document).ready(function(){
 $('#comboCost').change( function() {
         $('td').parent('tr:not(:contains("form_comboCost.options[form_comboCost.selectedIndex].value"))').toggle();
    });
})



oppure cosi?

$(document).ready(function(){        $('td').parent('tr:not(:contains("form_comboCost.options[form_comboCost.selectedIndex].value"))').toggle();
});


e per "$(document) in cosa dovrei modificarlo?
aaa
12/11/13 21:46
GN
La prima. Non c'è bisogno di modificare niente (vedi qui learn.jquery.com/using-jquery-core/document-ready/)
aaa
12/11/13 22:05
WillyVB
ok ho provato come dici tu ma non va, qui di seguito una "demo" su fiddle: jsfiddle.net/Eswzd/20/

mentre qui c'è un'esempio trovato per la rete tramite checkbox: jsfiddle.net/Eswzd/13/

Ripeto, io ho bisogno di nascondere dalla tabella tutte quelle righe che non contengono il testo selezionato dalla combobox, sto impazzendo 8-|
Ultima modifica effettuata da WillyVB 12/11/13 22:06
aaa
13/11/13 20:43
GN
Ok ci ho passato una ventina di minuti prima di capire che l'evento non si scatenava perchè hai messo name invece che id nel tag HTML:
<select id="comboCost">
poi ho dato una sistemata al codice, ci ho ragionato un attimo ed era molto più semplice di quel che pensavi: per ottenere il valore basta $(this), quindi vedi qui jsfiddle.net/Eswzd/29/

Credo sia quello che intendevi, altrimenti chiedi pure ;)
aaa