La mia soluzione:
nell'head della pagina imposto un paio di funzioni
Codice PHP:
<script type="text/javascript">
//<![CDATA[
function isIE() {
if(document.all){
return true;
}else{
return false;
}
}
function isChrome() {
if(navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
return true;
}else{
return false;
}
}
function cambia(el, form) {
var campo = document.getElementById(el);
var attr = campo.getAttribute('type');
if(isIE() || isChrome) {
switch(attr) {
case 'text':
newInput(el, 'file', form);
break;
case 'file':
newInput(el, 'text', form);
break;
}
}else{
switch(attr) {
case 'text':
campo.setAttribute('type', 'file');
break;
case 'file':
campo.setAttribute('type', 'text');
break;
}
}
}
function newInput(id, tipo, form) {
var myForm = document.getElementById(form);
var oldElem = document.getElementById(id);
var newElem = document.createElement('input');
newElem.setAttribute('id', id + '2');
newElem.setAttribute('name', id);
newElem.setAttribute('type', tipo);
myForm.insertBefore(newElem, oldElem);
delInput(id, form);
renInput(id + '2', id);
}
function delInput(id, form) {
var myForm = document.getElementById(form);
var oldElem = document.getElementById(id);
myForm.removeChild(oldElem);
}
function renInput(id, newId) {
var elem = document.getElementById(id);
elem.setAttribute('id', newId);
}
//]]>
</script>
poi nel body, il form ...
Codice PHP:
<form name="test" id="test" action="#" method="post" enctype="multipart/form-data">
<input name="campo" id="campo" type="text" />
<input type="submit" id="submit" name="submit" value="Invia" /><br /><br />
<a href="#" onclick="cambia('campo', 'test');">Cambia</a>
</form>
Dimmi se vuoi altre spiegazioni ...
Un esempio funzionante lo trovi qui.
PS. ma hai poi risolto per i DIV coi CSS?