io ho fatto così e sembra funzionare:
codice:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Pagina senza titolo</title> <script language="javascript" type="text/javascript"> // <!CDATA[ function validate(theForm ) { var valore = $("valore").value; if(valore == "False") return true;/*select = Sì: campo File non obbligato*/ else if (valore == "True") { var file = trim($("File1").value); if(file.length == 0) { alert("Il campo File è obbligato"); return false; } else return true; } else { alert("Non puoi andare avanti."); $("valore").focus(); return false; } } //al posto di mettere document.getElementById("div1"), mettere $("div1") //da prototype.js function $() { var elements = new Array(); for (var i = 0; i < arguments.length; i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element); if (arguments.length == 1) return element; elements.push(element); } return elements; } function trim(stringa) { stringa = stringa + ""; return stringa.replace(/^ */,"").replace(/ *$/,""); } // ]]> </script> </head> <body> <form method="post" action="a.asp" onsubmit="javascript:return validate(this);" id="form1" enctype="multipart/form-data"> <select size="1" id="valore" name="valore"> <option value="">Seleziona</option> <option value="True">Si</option> <option value="False">No</option> </select> <input type="file" name="File1" id="File1" onkeydown="this.blur();" /> <input type="submit" name="B1" value="Invia" id="B1" /> </form> </body> </html>
ma ho notato un problema che mi disturba e forse puoi aiutarmi tu:
se la pagina si chiama a.htm, l'istruzione alert("Il campo File è obbligato"); viene mostrata correttamente.
Se cambio l'estensione del file in asp, file a.asp, l'alert stampa male le lettere accentate
Ne conosci il motivo? :master:
![]()

Rispondi quotando