Ciao a tutti... ho una domandina facile facile per voi guru del Dom e del JS![]()
E' possibile cambiare un input type="text" in una Select senza perdere le varie caratteristiche (eventi, classe, id, name)? Naturalmente tutto da JS...!
Grazie
Rino
Ciao a tutti... ho una domandina facile facile per voi guru del Dom e del JS![]()
E' possibile cambiare un input type="text" in una Select senza perdere le varie caratteristiche (eventi, classe, id, name)? Naturalmente tutto da JS...!
Grazie
Rino
Questo è il mio dubbio... perchè mi basta un innerHTML e creo la select, ma volevo sapere se c'era un metodo per cambiare il tipo di nodo e non perdere il resto... altrimenti devo leggermi tutti gli attributi e riassegnarli!!!
Ma il DOM è qualcosa di complesso e completo del semplice innerHTML.
Non sono un esperto ma credo che se per esempio aggiungi una option ad una select tramite DOM tu non debba reinserire anche la class associata alla select, mentre se la crei da zero si.
Nel link postato trovi una guida utilissima.
![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
Guarderò meglio, anche se quella guida l'ho già spulciata molte volte...
Cmq se qualcuno sapesse indicarmi qualcosina in più....![]()
...allora... come cambiare tipo di campo non l'ho trovato, ma ho trovato come beccare al volo tutte le proprietà di un campo:dove prop è un prop è la proprietà, quindi mi basta riassegnare la proprieta al nuovo campo con un ciclo e dovrebbe andare a posto.codice:for (prop in document.getElementById["mioLiv"])
Mi sono però ritrovato con un problema... non tutte le proprietà del type="text" ci sono nella select, quindi devo controllare questo. Qualcuno mi sa dire come posso fare questo controllo? quello che in PHP sarebbe isset()?
Grazie
uppo
codice:<script type="text/javascript"> window.onload=function(){ str='non presenti in select:\n'; var t=document.getElementById('txt'); var s=document.getElementById('sel'); for(prop in t){ if(!s[prop]){ str+=prop+'\n'; } } alert(str); } </script> <form> <input type="text" id="txt"> <select id="sel"> <option>a</option> </select> </form>
Qualcosa non mi quadra... ti scrivo il mio codice perchè immaginavo fosse una cosa come quella che mi hai scritto, ma a me da un errore.
Mi da l'errore alla riga 25Codice PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<script language="JavaScript" type="text/javascript">
function cambia(div){
var proprieta = new Array(); var valori = new Array();
var i=0;
var str="PROPRIETA' INIZIALI
";
for (prop in document.getElementById(div)) {
proprieta[i]=prop;
valori[i]=document.getElementById(div)[proprieta[i]];
str=str + proprieta[i] + ": " + valori[i] + "
";
i++;
}
str=str + "----------------------------------------------------------------------
";
str=str + "PROPRIETA' NUOVO CAMPO
";
var mydiv=document.getElementById(div).parentNode;
str2="<select name='" + div + "' id='" + div + "'><option value='prova'>prova</option></select>";
mydiv.innerHTML=str2;
i=0;
for(i=0;i<proprieta.length;i++){
if(document.getElementById(div)[proprieta[i]]){
document.getElementById(div)[proprieta[i]]=valori[i];
}
str=str+proprieta[i]+": "+valori[i]+"
";
}
document.getElementById("debug").innerHTML=str
}
function start(){
a=document.getElementById("dati_0");
a["onfocus"]=prova;
}
function prova(){
alert("cliccato");
}
window.onload=start;
</script>
</head>
<body>
<form name="mod">
<div id="prova">
<input type="Text" name="dati_0" id="dati_0" />
<button onclick="cambia('dati_0')" id="bott">clicca</button>
</div>
</form>
<div id="debug"></div>
</body>
</html>
Eppure l'if sopra dovrebbe dire di entrare solo se la proprietà esiste no?codice:document.getElementById(div)[proprieta[i]]=valori[i];
Da questo errore firefox:
codice:Errore: setting a property that has only a getter File sorgente: http://localhost:81/lavoro_intranet/...bio_input.html Riga: 25