JQuery - No se cambia el id y name de un array de elementos de formulario con jquery

 
Vista:
Imágen de perfil de Matías

No se cambia el id y name de un array de elementos de formulario con jquery

Publicado por Matías (3 intervenciones) el 10/12/2023 04:21:50
Tengo un sitio para gestión de un sindicato desarrollado con cakephp, en el tengo una vista donde registro el recibo por el pago de los aportes de una empresa, en esta vista permito la eliminación de uno o varios períodos de los aportes, pero cuando elimino un período menor al máximo no se cambia el nombre ni el id del elemento de formulario.
Este es el código del jquery que hace la eliminación y trata de cambiar el nombre e id de los elementos de formulario:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
$(function(){
	$('#eliminar').click(function(){
		var primero = 0;
		$('.amount').each(function(index){
			if($('#check-eliminar-'+index).prop('checked')){
				if(primero == 0) primero = index;
				$('#fila-'+index).children(index).remove();
				$('#fila-'+index).remove();
			}
		});
		const formato = new Intl.NumberFormat('en-US', {
			useGrouping: false,
			maximumFractionDigits: 2,
			minimumFractionDigits: 2
		});
		var sum = 0;
		$('.amount').each(function(){
			sum += Number($(this).val());
		});
		$('#total').val(formato.format(sum));
		var ultima_tabla = <?= $j ?>;
		for(var i = 0; i < ultima_tabla; i++){
			if(!existen_registros($('#tabla-'+i))){
				$('#fila-r-'+i).remove();
				$('#fila-p-'+i).remove();
			}
		}
		var name_amount = "", name_concept = "", name_contribution = "", name_join_data = "", name_reference = "", id_amount = "", id_concept = "", id_contribution = "",
			id_join_data = "", id_reference = "", ultimo = $(".amount").length;
		if(primero < ultimo){
			var j = 0;
			$('.amount').each(function(index){
				if(typeof($('#amount-'+i)) == "object"){
					name_amount = "contributions_receipts["+j+"][amount]";
					name_check_eliminar = "eliminar["+j+"]";
					name_concept = "contributions_receipts["+j+"][concept_id]";
					name_contribution = "contributions_receipts["+j+"][contribution_id]";
					name_join_data = "contributions["+j+"][_joinData][id]";
					name_reference = "contributions_receipts["+j+"][reference]";
					id_amount = "amount-"+j;
					id_check_eliminar = "check-eliminar-"+j;
					id_concept = "concept-"+j;
					id_contribution = "contribution-"+j;
					id_join_data = "join-data-"+j;
					id_reference = "reference-"+j;
					$("#amount-"+index).attr("name", name_amount);
					$("#amount-"+index).attr("id", id_amount);
					$("#check-eliminar-"+index).attr("name", name_check_eliminar);
					$("#check-eliminar-"+index).attr("id", id_check_eliminar);
					$("#concept-"+index).attr("name", name_concept);
					$("#concept-"+index).attr("id", id_concept);
					$("#contribution-"+index).attr("name", name_contribution);
					$("#contribution-"+index).attr("id", id_contribution);
					$("#join-data-"+index).attr("name", name_join_data);
					$("#join-data-"+index).attr("id", id_join_data);
					$("#reference-"+index).attr("name", name_reference);
					$("#reference-"+index).attr("id", id_reference);
					j++;
				}
			});
		}
	});
})
¿Cómo puedo solucionar este problema?
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

No se cambia el id y name de un array de elementos de formulario con jquery

Publicado por Alejandro (15 intervenciones) el 11/12/2023 16:08:17
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Revisa la consola para que veas los errores.

La variable index en la función del each recibe el elemento, al intentar concatenar supongo que tu esperabas otra cosa.
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 Matías

No se cambia el id y name de un array de elementos de formulario con jquery

Publicado por Matías (3 intervenciones) el 12/12/2023 00:26:30
Gracias por su respuesta, pero lo solucioné agregando el data-id a la class .amount, con eso ya quedó funcionando
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