Foros del Web » Programando para Internet » Javascript »

Problemilla validando un form con checkFileUpload

Estas en el tema de Problemilla validando un form con checkFileUpload en el foro de Javascript en Foros del Web. Hola vereis tengo un form para subir datos y una imagen a una base de datos, bien, esto me lo hace pero quiero validar unos ...
  #1 (permalink)  
Antiguo 28/09/2006, 09:16
 
Fecha de Ingreso: octubre-2004
Mensajes: 230
Antigüedad: 19 años, 6 meses
Puntos: 0
Problemilla validando un form con checkFileUpload

Hola vereis tengo un form para subir datos y una imagen a una base de datos, bien, esto me lo hace pero quiero validar unos campos y tb que la imagen que suban tenga unas dimensiones especificas y que no supere un peso, pues lo que me pasa esque consigo que me salgan los mensajes de "Falta el titulo" y los de "La imagen tiene que tener x anchura" y el de "La imagen es demasiado pesada tiene que ser de x kb" pero cuando le doy al boton de aceptar estos mensajes se lo pasa por el forro y me la inserta en la db....... hay os pongo el código a ver si alguien me dice algo

Código:
function checkFileUpload(form,extensions,requireUpload,sizeLimit,minWidth,minHeight,maxWidth,maxHeight,saveWidth,saveHeight) { //v2.0
  document.MM_returnValue = true;
  if (extensions != '') var re = new RegExp("\.(" + extensions.replace(/,/gi,"|").replace(/s/gi,"") + ")$","i");
  for (var i = 0; i<form.elements.length; i++) {
    field = form.elements[i];
    if (field.type.toUpperCase() != 'FILE') continue;
    if (field.value == '') {
      if (requireUpload) {alert('Archivo requerido!');document.MM_returnValue = false;field.focus();break;}
    } else {
      if(extensions != '' && !re.test(field.value)) {
        alert('Este tipo de archivo no esta permitido.\nSolo las siguientes extensiones estan permitidas ' + extensions + '.\nSelecciona otro archivo.');
        document.MM_returnValue = false;
		field.focus();break;
      }
    document.PU_uploadForm = form;
    re = new RegExp(".(gif|jpg|jpeg)$","i");
    if(re.test(field.value) && (sizeLimit != '' || minWidth != '' || minHeight != '' || maxWidth != '' || maxHeight != '' || saveWidth != '' || saveHeight != '')) {
      checkImageDimensions(field,sizeLimit,minWidth,minHeight,maxWidth,maxHeight,saveWidth,saveHeight);
    } } }
}

function showImageDimensions(fieldImg) { //v2.0
  var isNS6 = (!document.all && document.getElementById ? true : false);
  var img = (fieldImg && !isNS6 ? fieldImg : this);
  if ((img.minWidth != '' && img.minWidth > img.width) || (img.minHeight != '' && img.minHeight > img.height)) {
    alert('La anchura de la imagen elegida es demasiado pequeña!\nDebería ser al menos ' + img.minWidth + ' x ' + img.minHeight); false;}
  if ((img.maxWidth != '' && img.width > img.maxWidth) || (img.maxHeight != '' && img.height > img.maxHeight)) {
    alert('La anchura de la imagen elegida es demasiado grande!\nDebería ser de un máximo de ' + img.maxWidth); false;}
  if (img.sizeLimit != '' && img.fileSize > img.sizeLimit) {
    alert('La imagen elegida es demasiado pesada!\nDebería ser de un máximo de ' + (img.sizeLimit/1024) + ' KBytes'); false;}
  if (img.saveWidth != '') document.PU_uploadForm[img.saveWidth].value = img.width;
  if (img.saveHeight != '') document.PU_uploadForm[img.saveHeight].value = img.height;
  document.MM_returnValue = true;
}

function checkImageDimensions(field,sizeL,minW,minH,maxW,maxH,saveW,saveH) { //v2.0
  if (!document.layers) {
    var isNS6 = (!document.all && document.getElementById ? true : false);
    document.MM_returnValue = false; var imgURL = 'file:///' + field.value.replace(/\\/gi,'/');
    if (!field.gp_img || (field.gp_img && field.gp_img.src != imgURL) || isNS6) {field.gp_img = new Image();
		   with (field) {gp_img.sizeLimit = sizeL*1024; gp_img.minWidth = minW; gp_img.minHeight = minH; gp_img.maxWidth = maxW; gp_img.maxHeight = maxH;
  	   gp_img.saveWidth = saveW; gp_img.saveHeight = saveH; gp_img.onload = showImageDimensions; gp_img.src = imgURL; }
	 } else showImageDimensions(field.gp_img);}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') {
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (val<min || max<val) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' se requiere.\n'; }
  } if (errors) alert('Han ocurrido los siguientes errores:\n'+errors);
  document.MM_returnValue = (errors == '');
}
Código HTML:
<FORM  name="form1" id="form1" method="post" enctype="multipart/form-data" action="<%=MM_editAction%>" onSubmit="checkFileUpload(this,'GIF,JPG,JPEG',false,'25','','','140','','','');MM_validateForm('titulo','','R');return document.MM_returnValue" >
		   <input type="hidden" name="id" value="<%= cnuevo %>">
		    <table width="100%" border="0" align="left" cellpadding="0" cellspacing="0">
              <tr style="padding-left:10"> 
                <td height="4" colspan="5" valign="top"></td>
              </tr>
              <tr style="padding-left:10">
                <td height="15" valign="top" bgcolor="#d8eec5" class="e_azul">Titulo</td>
                <td height="15" valign="top" colspan="4">
					<input type="text" name="titulo" size="60">
				</td>
              </tr>
              
              <tr style="padding-left:10"> 
                <td width="90" height="15" bgcolor="#d8eec5" class="e_azul" valign="top">Fecha</td>
                <td width="166" height="15" valign="top">
					<p><input name="fecha" type="text" size="10" maxlength="10"> 
					(dd/mm/aaaa)</p> 
				</td> 
              </tr>
              <tr style="padding-left:10"> 
			  <td width="90" height="15" bgcolor="#d8eec5" class="e_azul" valign="top">Estado</td>
                <td width="166" height="15" valign="top">
				<select name="estado" class="menutitle2">
				      
					   <option value=" ">Activa</option>
					   <option value="si">De Baja</option>
				</select>
				</td> 
              </tr>
			  <tr style="padding-left:10"> 
			  <td width="90" height="15" bgcolor="#d8eec5" class="e_azul" valign="top">Scroll</td>
                <td width="166" height="15" valign="top">
				<select name="scro" class="menutitle2">
				      
					   <option value="si">Si</option>
					   <option value="no">No</option>
				</select>
				</td> 
              </tr>
			  <tr style="padding-left:10"> 
			  <td width="90" height="15" bgcolor="#d8eec5" class="e_azul" valign="top">Imagen:</td>
                <td width="166" height="15" valign="top">
				 <input  name="image" type="file" id="file">
				</td> 
              </tr>
              <tr style="padding-left:10"> 
                <td width="90" valign="top" bgcolor="#d8eec5" class="e_azul">Cuerpo</td>
                <td colspan="4" valign="top">
					<textarea name="cuerpo" cols="80" rows="8"></textarea>
				</td>
              
				<tr></tr>
                <td colspan="2" valign="top" class="e_azul">
			  	  <div align="center">
			  	      <input name="Action" type="submit" class="input50" value="Insertar" > 	
			  	    &nbsp; 
			  	      <input name="Submit2" type="reset" class="input90" value="Reestablecer">			  
	  	          </div></td>
              </tr>
			  <tr>
			  <td colspan="2">&nbsp;</td>
			  </tr>
			  <tr>
			  <td colspan="2"><div align="center"><a href="javascript:history.go(-1);" class="azul"><strong>Volver</strong></a></div></td>
			  </tr>
            </table>
			<input type="hidden" name="MM_insert" value="true">
		  </FORM> 
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:33.