View Full Version : html in javascript
ciao a tutti, ho una domanda da farvi credo stupida, ma che mi sta facendo impazzire.
in php per visualizzare una parte di html dopo un controllo mi capita spesso di fare così
<?php if(controllo) { ?>
parte di html
<? } ?>
ora mi chiedevo se è possibile fare la stessa cosa con javascript e vi spiego anche per quale motivo.
o una form su cui faccio una verifica dei campi solo in javascript per cui se quest'ultimo è disabilitato non deve proprio essere visualizzata la form.
per questo avevo pensato che nel <noscript> mettevo il messaggio che se non hai javascript non puoi bla bla bla
se invece javascript è abilitato potrei valorizzare una variabile e quindi fare un controllo su questa per visualizzare la form.
ok, mi sono dilungato, sorry!
spero sia tutto chiaro comunque...
grazie a tutti!!!
wingman87
19-01-2012, 10:53
Potresti fare una cosa del genere:
document.getElementById('formContainer').innerHTML = formContent;
Dove formContainer è l'id dell'elemento in cui vuoi iniettare il form.
Potresti fare una cosa del genere:
document.getElementById('formContainer').innerHTML = formContent;
Dove formContainer è l'id dell'elemento in cui vuoi iniettare il form.
ok,scusami ma in javascript non sono molto ferrato...quindi come gli pass il form a "formContent"?
Potresti fare una cosa del genere:
document.getElementById('formContainer').innerHTML = formContent;
Dove formContainer è l'id dell'elemento in cui vuoi iniettare il form.
document.getElementById('formContainer').innerHTML = "<form>campi</form>";
una cosa del genere?
wingman87
19-01-2012, 13:02
Sì, formContent è l'HTML da iniettare
Sì, formContent è l'HTML da iniettare
il problema è che nel form ho del codice javascript associato agli eventi onfocus e onblur, come lo scrivo?
grazie comunque...
alla fine ho risolto con document.write
se javascript è disabilitato la form non uscirà proprio
una volta chiuso il tag di php ci puoi scrivere javascript proprio come fai con l'html
una volta chiuso il tag di php ci puoi scrivere javascript proprio come fai con l'html
ti ringrazio per la risposta, ma non era questa la mia domanda
ti ringrazio per la risposta, ma non era questa la mia domanda
ho visto,
perdonami ho letto male :)
ho visto,
perdonami ho letto male :)
nulla figurati ;)
comunque se qualcuno ha una soluzione migliore rispetto alla mia sarei felice di saperla, io dovevo risolvere velocemente il problema ma ora vorrei capire se è una soluzione "fatta bene"
wingman87
19-01-2012, 16:01
il problema è che nel form ho del codice javascript associato agli eventi onfocus e onblur, come lo scrivo?
Non ho capito il problema, in formContent scrivi l'html come lo scriveresti normalmente, compresi gli eventi onfocus e onblur.
Magari posta un po' di codice per capire meglio.
ecco quello che faccio
<script type="text/javascript">
document.write("<form name=\"inscomment\" id=\"inscomment\" method=\"post\" class=\"form-js\"><input name=\"autore\" id=\"autore\" type=\"text\" size=\"20\" value=\"Autore\" onfocus=\"if(this.value==this.defaultValue)this.value=''\"><textarea name=\"testo\" id=\"testo\" cols=\"70\" rows=\"5\" onfocus=\"if(this.value==this.defaultValue)this.value=''\">Commenti...</textarea><input type=\"button\" value=\"Invia\" onClick=\"validateform()\"></form></div>");
</script>
wingman87
19-01-2012, 16:14
Ora che mi ci fai pensare forse il js iniettato in questo modo non funziona su tutti i browser, però si può sempre associare vari handler agli eventi dopo aver settato il contenuto del formContainer.
Esempio:
document.getElementById('formContainer').innerHTML = formContent;
document.getElementById('txtName').onfocus = onFocusHandler;
dove onFocusHandler è una funzione, ad esempio:
function onFocusHandler(e)
{
e.target.style.backgroundColor = "yellow";
}
secondo te va bene come ho fatto io?
e qual è la differenza se invece lo fai con innerHTML?
grazie ancora
wingman87
19-01-2012, 16:26
La differenza principale è che con innerHTML puoi mettere lo script dove vuoi nella pagina o anche in uno script esterno, invece con document.write lo devi piazzare esattamente dove vuoi che venga iniettato il codice. Un'altra differenza è che con innerHTML puoi iniettare il codice anche in differita, non necessariamente quando viene caricata la pagina.
Secondo me comunque va bene come hai fatto...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.