Modifica proprietà form da javascript

  • Creatore Discussione Creatore Discussione ciany85
  • Data di inizio Data di inizio

ciany85

Nuovo Utente
4 Dic 2006
2
0
0
Ciao a tutti, ho un problema da qualche giorno e volevo sapere da voi in che maniera posso risolverlo. Il pratica io genero nella pagina jsp in java n <select> che verranno valorizzate tutte alla stessa maniera e cioè con m <option> che mi rappresentano dei campi di una tabella. Il mio problema è fare in modo che quando venga selezionato uno di questi campi in una select, lo stesso venga disabilitato nelle altre in maniera da bloccare la possibilità di associare 2 valori ad uno stesso campo. (Vi chiederete perchè questi campi non gli metti fissi e lasci associare ad ogni campo il valore? Perchè i valori vengono presi da un xml e quindi sono gia presenti nella pagina, ritengo più pratico far associare il valore al campo!) In parte ho risolto il problema riuscendo a disabilitare l'option selezionata in tutte le select, ma nel momento in cui vado a cambiare nuovamente il valore non riesco a riabilitare quel campo. Vi posto il codice funzionante in parte e quello che a mio parere potrebbe essere giusto ma non funziona. L'errore che mi da è: x has no properties alla riga 20.

Funzionante in parte:

function check(value, n) {
var temp = "";
var x;
for (var j = 0; j < n; j++) {
temp = "OBJECT_METADATA_ID"+j;
x = document.getElementById(temp);
for(var i = 0; i < x.length; i++) {
if (x.options.value == value) {
x.options.disabled=true;
} else {
x.options.disabled=false;
}
}
}
}

Non funzionante:

function check(n) {
var temp = "";
var x;
var campi_selezionati = new Array();
for (var j = 0; j < n; j++) {
temp = "OBJECT_METADATA_ID"+j;
x = document.getElementById(temp);
alert(x.selectedIndex.value);
campi_selezionati.push(x.options.selectedIndex.value);
}

for (var j = 0; j < n; j++) {
temp = "OBJECT_METADATA_ID"+j;
x = document.getElementById(temp);
for(var i = 0; i < x.length; i++) {
for (var z = 0; z < campi_selezionati.length; z++) {
if (x.options.value == campi_selezionati[z]) {
x.options.disabled=true;
} else {
x.options.disabled=false;
}
}
}
}
}

l'evento è associato all' onChange(numero di select generate) di aogniuna delle n select. Le select prendono il nome di OBJECT_METADATA_ID più il numero in progressione da 0 a n.
Penso di aver postato tutto il necessario per comprendere il problema. Ringrazio in anticipo chi mi dovesse aiutare.

Ciao :-)
 
dimenticanza

scusate, ho riletto e mi sono accorto di un errore. ho messo errore nella riga 20 ma non corrisponde il numero di riga. la riga che da l'errore: "x has no properties" è questa...

alert(x.selectedIndex.value);

se lo levo sta nel push, quindi il problema è che non riesce a valorizzare x nonostante nell'esempio precedente funzioni. Mah!

Aiutatemi. Grazie ancora


Ciao
 

Discussioni simili