WillyVB (Normal User)
Rookie
Messaggi: 31
Iscritto: 30/12/2011
|
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
Codice sorgente - presumibilmente Plain Text |
<script type="text/javascript" src="/js/common.js"></script>
|
Strutturazione combobox
Codice sorgente - presumibilmente Plain Text |
<form name="combocost">
<select name="combocost" onchange="notContains()">
<option value="Val1">Val1</option>
<option value="Val1">Val2</option>
</select>
</form>
|
Codice su file JS
Codice sorgente - presumibilmente Plain Text |
$('#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?
|
|
GN (Member)
Guru
Messaggi: 772
Iscritto: 30/04/2011
|
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
Codice sorgente - presumibilmente Plain Text |
con
Codice sorgente - presumibilmente Plain Text |
|
|
WillyVB (Normal User)
Rookie
Messaggi: 31
Iscritto: 30/12/2011
|
la libreria jquery è inclusa
Ho apportato tali modifiche
Richiamo libreria jquery su districts.html
Codice sorgente - presumibilmente Plain Text |
<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
Codice sorgente - presumibilmente Plain Text |
<script type="text/javascript" src="/js/common.js"></script>
|
Form su districts.html
Codice sorgente - presumibilmente Plain Text |
<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
Codice sorgente - presumibilmente Plain Text |
$('#comboCost').change( function() {
$('td').parent('tr:not(:contains("form_comboCost.options[form_comboCost.selectedIndex].value"))').toggle();
});
|
ma non va.... dove sbaglio? |
|
GN (Member)
Guru
Messaggi: 772
Iscritto: 30/04/2011
|
Scusa prima mi erodimenticato di dirti che tutto il js va racchiuso in
Codice sorgente - presumibilmente Plain Text |
$(document).ready(function(){
//qui
});
|
|
|
WillyVB (Normal User)
Rookie
Messaggi: 31
Iscritto: 30/12/2011
|
Scusa se disturbo, non sono molto pratico di questi linguaggi (preferisco quelli gestionali xD)
in pratica cosi?
Codice sorgente - presumibilmente Plain Text |
$(document).ready(function(){
$('#comboCost').change( function() {
$('td').parent('tr:not(:contains("form_comboCost.options[form_comboCost.selectedIndex].value"))').toggle();
});
})
|
oppure cosi?
Codice sorgente - presumibilmente Plain Text |
$(document).ready(function(){ $('td').parent('tr:not(:contains("form_comboCost.options[form_comboCost.selectedIndex].value"))').toggle();
});
|
e per "$(document) in cosa dovrei modificarlo? |
|
GN (Member)
Guru
Messaggi: 772
Iscritto: 30/04/2011
|
|
|
WillyVB (Normal User)
Rookie
Messaggi: 31
Iscritto: 30/12/2011
|
ok ho provato come dici tu ma non va, qui di seguito una "demo" su fiddle: http://jsfiddle.net/Eswzd/20/
mentre qui c'è un'esempio trovato per la rete tramite checkbox: http://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
Ultima modifica effettuata da WillyVB il 12/11/2013 alle 23:06 |
|
GN (Member)
Guru
Messaggi: 772
Iscritto: 30/04/2011
|
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:
Codice sorgente - presumibilmente Plain Text |
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 http://jsfiddle.net/Eswzd/29/
Credo sia quello che intendevi, altrimenti chiedi pure
|
|