Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336

    errore in accesso campo form

    Una domanda (spero) molto rapida: ho una pagina con parecchi form, il cui nome è creato dinamicamente a partire da un id e una data; in ognuno di essi ho un submit che sull'onclick setta un campo e il target... se non fosse che ho dei problemi! La console di firefox mi dà questo errore:
    codice:
    Errore: missing ; before statement
    Codice sorgente:
    alert('Inizio...');document.101a2005-09-13am.method.value='showDatiPaziente';document.101a2005-09-13am.target='regPaziente';....
    con una freccina al primo "." dopo document.
    Il codice del bottone è:
    codice:
    <button type='submit' style='height: 30px;' onclick="alert('Inizio...');document.{$nomeForm}.method.value='showDatiPaziente';...
    Io non capisco proprio quale ";" manchi ... voi avete suggerimenti?

    PS l'alert non serve a nulla, l'avevo messo prima di vedere a console per provare a capire se faceva l'onclick e/o dove si fermava...

  2. #2
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Ehi, provando a togliere sia l'alert che "document." l'errore segnalato dalla console è sempre lo stesso, ma stavolta la freccina sta sulla "a" del nome del form:
    codice:
    Errore: missing ; before statement
    Codice sorgente:
    101a2005-09-05am.target='regPaziente';...
    Non è che i numeri nel nome del form danno fastidio? :master:

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ci sono vari errori.

    1. il nome non puo` contenere segni - o altri segni significativi (in realta` puoi usare solo lettere e numeri, oltre il _ e deve iniziare per lettera).

    2. method non e` un nome adatto ad un campo (method e` un attributo del form)

    3. se il nome e` variabile, conviene usare uno di questi:
    document.forms['NOMEFORM'].NOMECAMPO.value ...
    document.forms[variabile].NOMECAMPO.value ...
    document.forms["cost'+var].NOMECAMPO.value ...
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Oh-oh... prima di tutto grazie per la spiegazione molto esauriente! Ma.. quelle che mi dai non sono buone notizie... non avevo pensato a method e anzi l'avevo già usato altre volte (evidentemente ero stata fortunata! ) ma soprattutto non so bene come altro fare a nominare i form, visto che sono identificati appunto da quei dati e non ho la possibilità di usare una variabile per contare e accedere secondo il numero... quindi ti chiedo: è davvero necessario accedere in maniera "assoluta" attraverso document.nomeform o una delle sintassi che mi hai suggerito tu? Non esiste un qualche riferimento "relativo" per cui se sono sul pulsante di submit di un form posso accedere alle proprietà di quel form senza bisogno di identificarlo (una specie di this, non so se mi sono spiegata....)
    Scusa se sono un po' confusa, ma come hai capito dai tanti errori non ho ancora molto la mano con la sintassi di JS!

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il this si puo` usare. Non saprei dirti esattamente come, dato che non riesco ad interpretare il codice che hai postato.

    Pero` il problema di fondo e` quell'uso che fai dei nomi, che non e` un problema JS, ma HTML: se anche funziona nel tuo browser (magari usi IE, che lascia passare tutto), potrebbe non funzionare in altri.

    Tornando al this, ecco alcuni esempi:
    <form ... onsubmit="return funz1(this);">
    dove funz1:
    function funz1(ogg_form) {
    alert("form "+ogg_form.name);
    }

    <input ... onchange="funz2(this);">
    dove:
    function funz2(ogg_campo) {
    alert("campo "+ogg_campo.name);
    alert("form "+ogg_campo.form.name);
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Fantastico!!!
    <form ... onsubmit="return funz1(this);">
    è proprio quello che mi serve!
    Nel frattempo avevo provato a mettere in atto i tuoi suggerimenti, cambiando il nome di method e del form e accedendo con document.forms.('nomeform') e va tutto alla perfezione! Ora magari provo a riscrivere il codice impostandolo come questa funzione, così mi semplifico le operazioni con il nome... e la prossima volta sto più attenta ai nomi di form e campi, promesso! Per stavolta grazie mille!

  7. #7
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Ah dimenticavo: explorer?? VVoVe: no-no-no grazie, meglio firefox!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.