JavaScript - Script JS que valida peso de archivo

 
Vista:
Imágen de perfil de Eduardo Arroyo
Val: 159
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Script JS que valida peso de archivo

Publicado por Eduardo Arroyo (176 intervenciones) el 04/05/2023 00:38:37
Hola a todos espero esten bien..

tengo el siguiente problema

en un formulario valido con JS que el tamaño del archivo no pese mucho el cual hago con un script que se incluye (src)
1
2
3
Archivo:
                  <input type="file" name="archivosW[]" id="archivosW"  class="form-control-file archivosWW" accept="application/msword,application/pdf,image/jpeg,image/png" disabled/>
                  <script src='scriptvalidapeso.js'></script>

JS que se incluye (src):

1
2
3
4
5
6
7
8
9
10
11
12
const MAXIMO_TAMANIO_BYTES = 2000000;
const $miInput = document.querySelector(".archivosWW");
$miInput.addEventListener("change", function () {
	if (this.files.length <= 0) return;
	const archivo = this.files[0];
	if (archivo.size > MAXIMO_TAMANIO_BYTES) {
		const tamanioEnMb = MAXIMO_TAMANIO_BYTES / 1000000;
		alert("El tamaño máximo es 10 MB");
		$miInput.value = "";
	} else {
	}
});

y ese formulario tiene un campo que crea o elimina campos dinamicos

por lo que ese scriprt solo funciona en el primer campo file y en el resto (los que se crean dinamicos) no he podido poner en que parte viene ese script JS que se llama pues si o si tiene que venir puego del campo File. lo he probado poniendolo arriba y nada tiene que estar debajo..

y no se que hacer como poner para que ese codigo funcione en los campos creados..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script type="text/javascript">
$(document).ready(function(){
    var maxField = 10; //Input fields increment limitation
    var addButton = $('.add_button'); //Add button selector
    var wrapper = $('.field_wrapper'); //Input field wrapper
    var fieldHTML = '<div id="nTargeta2"><input type="text" name="documento[]" id="documento" autocomplete="off" list="brow" required/> <datalist id="brow"> <option value="Incapacidad"> <option value="Epicrisis"></datalist>Archivo:<input type="file" name="archivosW[]" id="archivosW" accept="application/msword,application/pdf,image/jpeg,image/png"  class="form-control-file archivosWW"/> <a href="javascript:void(0);" style="color: blue" class="remove_button" title="Remove field">   Quitar</a></div>'; //New input field html
// LO HE PUESTO EL JS AQUI Y NADAAA.....
    var x = 1; //Initial field counter is 1
    $(addButton).click(function(){ //Once add button is clicked
        if(x < maxField){ //Check maximum number of input fields
            x++; //Increment field counter
            $(wrapper).append(fieldHTML); // Add field html
        }
    });
    $(wrapper).on('click', '.remove_button', function(e){ //Once remove button is clicked
        e.preventDefault();
        $(this).parent('div').remove(); //Remove field html
        x--; //Decrement field counter
    });
// HE PUESTO EL CODIGO JS AQUIIII Y NADA
});
</script>

lo he puesto (el JS) en los lugares donde indico (// HE PUESTO EL CODIGO JS AQUIIII Y NADA) me dan una ayudita por favor...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Script JS que valida peso de archivo

Publicado por Alejandro (532 intervenciones) el 04/05/2023 01:52:08
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Cada que agregas el elemento deberías agregarle el listener a dicho elemento.

La otra opción es con jquery de la forma en que ya lo haces remove_button.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Eduardo Arroyo
Val: 159
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Script JS que valida peso de archivo

Publicado por Eduardo Arroyo (176 intervenciones) el 04/05/2023 02:16:37
Lo he hecho de Miles de maneras pero no me resulta.. podías por fa ilustratme que casi no entiendo lo que me dices y mil gracias por responder
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Script JS que valida peso de archivo

Publicado por Alejandro (532 intervenciones) el 04/05/2023 18:57:17
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Te dejo un ejemplo con botones.
Esto sería como quizá lo estas haciendo. El botón agregar crea botones "Click me" pero solo funciona el primero, que ya existía.
si descomentas la linea del addEventListener verás que todos los botones que se crean tienen el mismo funcionamiento que el primero.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<div id="divButtons">
	<button type="button" class="clickme">Click me</button>
</div>
<button type="button" id="cmdAddButton">Agregar</button>
 
<script>
	document.getElementById('cmdAddButton').addEventListener('click', function(){
		button = document.createElement('button');
		button.append(document.createTextNode('Click me'));
		button.classList.add('clickme');
		//button.addEventListener('click', cmdClikme);
 
		document.getElementById('divButtons').append(button);
	});
 
	function cmdClikme(){
		alert('Boton presionado');
	}
 
	document.querySelector('.clickme').addEventListener('click', cmdClikme)
</script>

Con jQuery es ídem como lo haces con el elemento .remove_button
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script src="https://code.jquery.com/jquery-3.6.4.min.js" integrity="sha256-oP6HI9z1XaZNBrJURtCoUT5SUnxFr8s3BzRl+cbzUq8=" crossorigin="anonymous"></script>
<div id="divButtons">
	<button type="button" class="clickme">Click me</button>
</div>
<button type="button" id="cmdAddButton">Agregar</button>
 
<script>
	$('#cmdAddButton').click(function(){
		$('#divButtons').append('<button type="button" class="clickme">Click me</button>');
	})
 
	$('#divButtons').on('click', '.clickme', function(){
		alert('Boton presionado');
	});
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar