Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012

    focus manda in tilt FireFox

    la mia situazione è questa:

    sto creando una pèagina di caricamento articolo dove ho diversi campi, tra cui N campi immagini e N campi allegati.

    al submit del form devo effettuare un primo livello di verifica del tipo di file, successivamente lato server un secondo livello di verifica.

    il codice html in questione è questo, premetto che sleziono gli element tramite IL TAG ID
    codice:
    <form method="POST" name="insert" enctype="multipart/form-data" action="db_insert.php" onSubmit="javascript:file_control();">
    
    <td  align="left"><input type="file" name="allegato[]" id="allegati" size="45"></td>
    
    <td  align="left"><input type="file" name="immagine[]" id="immagine" size="45"></td>
    e questo il java script:

    codice:
    <script language="JavaScript" type="text/JavaScript">
    
    function ValidAll(url)
            {
            var ext= url.split('.');
            return /(pdf|doc|rtf|xls)/.test(ext[ext.length-1]);
            }
    
    function ValidImg(url)
            {
            var ext= url.split('.');
            return /(jpg|jpeg)/.test(ext[ext.length-1]);
            }
    
    function getElementsById(sId)
     {
      var outArray = new Array();	
    	if(typeof(sId)!='string' || !sId)
        {
    		return outArray;
    	  };
    	
    	if(document.evaluate)
        {
    		var xpathString = "//*[@id='" + sId.toString() + "']"
    		var xpathResult = document.evaluate(xpathString, document, null, 0, null);
    		while ((outArray[outArray.length] = xpathResult.iterateNext())) { }
    		outArray.pop();
        }
    	else if(document.all)
        {
    		for(var i=0,j=document.all[sId].length;i<j;i+=1)
          {
    		  outArray[i] =  document.all[sId][i];
          }
        }
      else if(document.getElementsByTagName)
        {
    		var aEl = document.getElementsByTagName( '*' );	
    		for(var i=0,j=aEl.length;i<j;i+=1)
          {
    			if(aEl[i].id == sId )
            {
    				outArray.push(aEl[i]);
    			  };
          };
        };
    	return outArray;
      }
    
    
    function check_img(files)
      {  
      for (x=1;x<=<? echo $pic_num ?>;x++)
        {
        var file=files[x].value;
        
        if (x==1 && file == "")
          {
          var vai=confirm("Attenzione! si sta tralasciando la scelta dell' immagine base per l'articolo,\n ovvero l'immagine che verra' visualizzata dall' utente \n nella lista degli articoli.\n Si desidera continuare?\n");
          if (vai)
            {
            return true;
            }
          else
            {
            insert.immagini[x].focus();
            return false;
            }
          }
        if(!ValidImg(file))
                {
                alert('I file accettati sono jpg o jpeg');
                insert.immagine[x].focus();
                return false;
                }    
        }
    
      }
    
    
    function check_all(files)
      {  
      for (x=1;x<=<? echo $att_num ?>;x++)
        {
        var file=files[x].value;
        if(!ValidAll(file))
                {
                alert('I file accettati sono doc,xls,rtf o pdf');
                insert.allegato[x].focus();
                return false;
                }    
        }
      
      }
    
    
    function file_control()
      {
      var files_img = getElementsById('immagine');
      var files_all = getElementsById('allegati');
       check_img(files_img);
       check_all(files_all);
      }

    il messaggio della consolle degli errori di FFox è "document.insert has non properties" e mi rimane il browser a pagina bianca in caricamento con la clessidra... non riesco a capire, io di java script sò meno di una cippa
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    probabilmente c'e' altro, ma se il name e' "insert" devi far riferimento ad esso come "document.insert",
    IE, browser molto permissivo, accetterebbe anche solo il name
    ciao

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    dal momento che il nome del campo input è name=immagine[$x] (mi serve così perchè poi ottengo un array delle immagini su cui lavorare con php) non vorrei che il mio problema derivasse da quello...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    infatti, anche quello
    quando per esempio scrivi
    insert.immagini[x].focus();
    dovrebbe essere
    document.insert.elements['immagini[]'][x].focus();

    rivedi anche il discorso degli id: l' id e' univoco, deve identificare un unico elemento nel documento

    ciao

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.