Ciao a tutti. Scusate ma sto diventando letteralmente pazzo..sono due ore che non riesco a capire dove possa essere il problema. La questione è abbastanza semplice. Fissato il seguente form HTML:
<div class="form_item">
<div class="form_element cf_heading">
<h1 class="cf_text">Richiesta Informazioni</h1>
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_text"> <span class="cf_text">Compilare il seguente form o scrivere all'indirizzo <a href="mailto:info@arteziapina.it?subject=Richiesta Informazioni">info@arteziapina.it</a> se si è interessati all'acquisto di uno o più articoli mostrati in galleria, o anche solo per semplici informazioni. </span> </div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label" style="width: 150px;">Nome</label>
<input class="cf_inputbox required" maxlength="150" size="30" title="Campo obbligatorio" id="text_2" name="text_2" type="text" />
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label" style="width: 150px;">Indirizzo e-mail</label>
<input class="cf_inputbox required validate-email" maxlength="150" size="30" title="" id="text_15" name="text_15" type="text" />
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label" style="width: 150px;">Telefono</label>
<input class="cf_inputbox required validate-number" maxlength="150" size="30" title="" id="text_14" name="text_14" type="text" />
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_dropdown">
<label class="cf_label" style="width: 150px;">Seleziona la categoria di interesse</label>
<select class="cf_inputbox" id="select_9" size="1" title="" name="select_9" onfocus="fillCategory();" onchange="SelectSubCat();" >
<option value="">Scegli l'Opzione</option>
</select>
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_dropdown">
<label class="cf_label" style="width: 150px;">Selezionare l'Articolo di interesse</label>
<select class="cf_inputbox" id="select_10" size="1" title="" name="select_10">
<option value="">Scegli l'opzione</option>
</select>
<a class="tooltiplink" onclick="return false;"><img height="16" border="0" width="16" class="tooltipimg" alt="" src="components/com_chronocontact/css/images/tooltip.png"/></a>
<div class="tooltipdiv">Selezionare l'Articolo di interesse :: Selezionare l'opzione NUOVO ARTICOLO se si vuole proporre un articolo non presente in galleria. In questo caso descrivere accuratamente il tipo di articolo e le sue caratteristiche all'interno del campo Messaggio</div>
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label" style="width: 150px;">Oggetto del messaggio</label>
<input class="cf_inputbox required" maxlength="150" size="30" title="Campo obbligatorio" id="text_10" name="text_10" type="text" />
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textarea">
<label class="cf_label" style="width: 150px;">Messaggio</label>
<textarea class="cf_inputbox required" rows="6" id="text_19" title="Campo obbligatorio" cols="25" name="text_19"></textarea>
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_button">
<input value="Invia" name="button_21" type="submit" />
</div>
<div class="cfclear"> </div>
</div>
con il seguente codice inserito nel Form JavaScript il form funziona correttamente, ovvero cliccando su "Seleziona la Categoria di interesse" appaiono correttamente le varie categorie e cliccando poi su "Seleziona l'Articolo d'interesse" appaiono correttamente i relativi articoli (diversi per ciascuna categoria):
//questo è il codice da inserire nella TAB Form Code sezione javascript
function fillCategory(){
removeAllOptions(document.getElementById('ChronoContact_Form_Contatti').select_9);
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '1', 'Quadri');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '2', 'Centritavola');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '3', 'Cuscini');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '4', 'Biancheria da Bagno');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '5', 'Biancheria da Cucina');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '6', 'Oggettistica varia per la casa');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '7', 'Decorazioni natalizie');
}
function SelectSubCat(){
// Funzione chiamata dopo la selezione della Sezione - ON or after selection of category this function will work
removeAllOptions(document.getElementById('ChronoContact_Form_Contatti').select_10);
//addOption(document.getElementById('ChronoContact_Form_Contatti').select_10, "", "Seleziona", "");
// Raccoglie tutti gli elementi della categoria per id - Collect all element of subcategory for various id
if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '1'){
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'1', 'Agrumi di Sicilia');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'2', 'Scalinata di Taormina');
}
if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '2'){
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'3', 'Centrino Mimosa');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'4', 'Centrino Caltagirone');
}
if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '3'){
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'5', 'Cuscino1');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'6', 'Cuscino2');
}
if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '4'){
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'7', 'Trittico di Tulipani');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'8', 'Asciugamano e ospite Margherite');
}
if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '5'){
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'9', 'Strofinacci Fantasia');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'10', 'Salvamacchia');
}
if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '6'){
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'11', 'Farfallina variopinta');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'12', 'Piatto Girasole');
}
if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '7'){
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'13', 'Abbraccio degli angeli');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'14', 'Cuscino Bianco Natale');
}
}
//////////////////
function removeAllOptions(selectbox) {
var i;
for(i=selectbox.options.length-1;i>=1;i--)
{
selectbox.options[i]=null;
//selectbox.remove(i);
}
}
function addOption(selectbox, value, text ) {
var optn = document.createElement("option");
optn.text = text;
optn.value = value;
selectbox.options.add(optn);
//selectbox.appendChild(optn,where);
}
Se però poi completo il codice JavaScript aggiungendo la lista completa degli articoli (facendo quindi banalmente dei copia e incolla e stando attento a tenere la numerazione corretta e a non dimenticare parentesi), il form non funziona più. Ovvero se clicco su "Selezione Categoria di interesse" non appaiono, come prima, le categorie, ma solo Scegli l'Opzione"
//questo è il codice da inserire nella TAB Form Code sezione javascript
function fillCategory(){
removeAllOptions(document.getElementById('ChronoContact_Form_Contatti').select_9);
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '1', 'Quadri');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '2', 'Centritavola');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '3', 'Cuscini');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '4', 'Biancheria da cucina');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '5', 'Biancheria da bagno');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '6', 'Oggettistica varia per la casa');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '7', 'Decorazioni natalizie');
}
function SelectSubCat(){
// Funzione chiamata dopo la selezione della Sezione - ON or after selection of category this function will work
removeAllOptions(document.getElementById('ChronoContact_Form_Contatti').select_10);
//addOption(document.getElementById('ChronoContact_Form_Contatti').select_10, "", "Seleziona", "");
// Raccoglie tutti gli elementi della categoria per id - Collect all element of subcategory for various id
if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '1'){
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'1', 'Cornice di vetro FOGLIA ORO');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'2', 'Quadro GIRASOLI E LIMONI');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'3', 'Quadro SCALINATA DI TAORMINA');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'4', 'Quadro AGRUMI DI SICILIA');
}
if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '2'){
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'5', 'Centrino CALTAGIRONE');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'6', 'Centrino ROSA FIORITA');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'7', 'Centrino MIMOSA');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'8', 'Centrotavola ORGANZA');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'9', 'Trittico TULIPANI');
}
if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '3'){
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'10', 'Cuscino GIRASOLE');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'11', 'Cuscino CALCIO CATANIA');
}
if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '4'){
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'12', 'Centrotavola e Grembiule FRAGOLE E MARGHERITE');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'13', 'Portapane GRANO E FIORI');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'14', 'Salvamacchia PRIMAVERA');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'15', 'Salvamacchia e Grembiule GIRASOLE');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'16', 'Strofinacci FANTASIA');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'17', 'Tovaglia da tavola AGRUMI DI SICILIA');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'18', 'Tovaglia da tavola RUSTICANA');
}
if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '5'){
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'19', 'Trittico da bagno TULIPANI');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'20', 'Asciugamano GLICINE');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'21', 'Asciugamano MARGHERITE');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'22', 'Asciugamano ROSETO');
}
if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '6'){
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'23', 'Appendiabiti FIORI DI PRIMAVERA');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'24', 'Barattolo da cucina FRAGOLATO');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'25', 'Bomboniera FARFALLINA');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'26', 'Piatto GIGLIO');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'27', 'Piatto GIRASOLE');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'28', 'Portamestolo LIMONCELLO');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'29', 'Portapresine da cucina');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'30', 'Presine da cucina');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'31', 'Soprammobile VETRO ROSATO');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'32', 'Tegola GIRASOLI');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'33', 'Vassoio LIMONI');
}
if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '7'){
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'34', 'Centro natalizio NOTTE D'INVERNO');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'35', 'Cuscino BIANCO NATALE');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'36', 'Palla natalizia ABBRACCIO DEGLI ANGELI');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'37', 'Palla natalizia PAESAGGIO DI NATALE');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'38', 'Piatto natalizio STELLA DI NATALE');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'39', 'Quadretto AUGURI DI NATALE');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'40', 'Tovaglia natalizia STELLE DI NATALE');
}
}
//////////////////
function removeAllOptions(selectbox) {
var i;
for(i=selectbox.options.length-1;i>=1;i--)
{
selectbox.options[i]=null;
//selectbox.remove(i);
}
}
function addOption(selectbox, value, text ) {
var optn = document.createElement("option");
optn.text = text;
optn.value = value;
selectbox.options.add(optn);
//selectbox.appendChild(optn,where);
}
Sono un po' stanco e quindi è possibile che mi sia sfuggito qualcosa e controllando e ricontrollando non riesco proprio a trovarlo...ma a me pare tutto assolutamente corretto.
Qualcuno ha modo di provare il codice e verificare?
Ve ne sarei immensamente grato, ho una scadenza a breve e ho bisogno di aiuto.
Grazie mille