Llenar datos de un campo dinámico con JavaScript, condicionado por dato de otro campo

Buenas a todos,

En un formulario tengo los campos generados por default, y unos campos que se añaden o sustraen dinámicamente (éstos pertenecen a otro modelo, diferente al formulario ya mencionado).

Los primeros 2 campos del formulario son “No. Control” y “Nombre del Alumno”, por medio de JavaScript logré que al escribir el número de control del alumno en el campo “No. Control”, el nombre del alumno aparezca en el campo “Nombre del Alumno”.

Aquí está el código de los campos junto con el script:

   <?=$form->field($model, 'noControlAlumno')->widget(Select2::classname(), [
    'data' => ArrayHelper::map(Alumnos::find()->all(),'noControl','noControl'),
    'language' => 'es',
    'options' => ['placeholder' => ' No. CONTROL ...','id'=>'noCon'],
    'pluginOptions' => [
        'allowClear' => true
    ],
]);
?>

<?= $form->field($model, 'nombreAlumno')->textInput(['maxlength' => true]) ?>


<?php
$script = <<< JS


  $('#noCon').change(function(){
//$(document).on('change', '#noCon', function(){
var noControl = $(this).val();

 $.get('index.php?r=alumnos/get-nombre-alumno',{ noControl : noControl },function(data) {
    var data = $.parseJSON(data);
   
    // Al ingresar un numero de control en el campo "No. Control", el campo "Nombre de      Alumno"
    //  se le atribuye el nombre del alumno correspondiente a ese numero de control
    $('#prestamos-nombrealumno').attr('value',data.alumnoNombre);
 });

});

 JS;
$this->registerJS($script);
?>

Ahora, yo quise hacer lo mismo con los campos dinámicos:

Pero no funcionó, lo que se me hizo curioso, es que para que funcionara el script en los campos que mencioné primeramente, tuve la necesidad de declarar un id (noCon) en el primer campo “noControlAlumno”, pero para que el segundo campo “nombreAlumno” obtuviera el nombre del alumno, no hubo necesidad de declarar un id a ese campo, simplemente lo obtuve al inspeccionarlo por medio de mi navegador web al visualizar el formulario.

Para referencia, usé el siguiente widget para hacer uso de los campos dinámicos dentro de mi formulario: https://github.com/wbraganca/yii2-dynamicform

Espero que haya podido explicarme lo suficientemente.

Muchas Gracias de antemano.

EDIT:
Ya logré que el script funcione en el primer campo dinámico, solo me faltaría que funcione correctamente con los demás.

EDIT2:

Supongo que es por aquí por donde debería ir, más no sé como arreglarlo aún.
Tendría que declarar un bucle for para que aumente el valor de i cada vez que se ejecuta el script no?

Hola redz, entendi mas o menos esto, quieres crear una lista de campos en que si tu escribes el numero del alumno, aparece en el lado derecho el nombre del mismo, la verdad creo que estas complicando y cayendo un poco en redundancia con lo que estas haciendo, dame un poco mas de información, para poder ayudarte con una mejor solucion
Ejemplo
Porque necesitas que el atributo sea dinamico
Cual es la necesidad de aplicar un evento por cada input, uno genérico es mas eficiente

Disculpa la tardanza, ya arreglé mi problema y me olvidé por completo de este thread, igual te explico:

Los campos dinámicos (id del material didáctico y nombre del material) son parte de un formulario de préstamo de material didáctico de un laboratorio que se ubica dentro de una institución universitara, la razón por la que tienen que ser dinámicos, es que dependiendo de las necesidas del estudiante, es la cantidad de materiales que requerirá. Como ya había comentado anteriormente, logré que funcionara el script de JS para autollenar el primer campo dinámico del nombre del material al ingresar su ID en el campo de “ID del material”.

Intenté que funcionara el mismo script con los demás campos dinámicos sin resultados, estuve así varios días, hasta que me percaté que había ignorado por completo una pequeña sección de código ejemplo que el desarrollador facilitó en el sitio GitHub de su widget, eran unos eventos de JS que se ejecutaban antes y despues de añadir o eliminar un elemento. Al comprender su funcionamiento, simplemente los copié en mi codigo, y dentro del evento que se ejecuta cada vez que se agrega un elemento nuevo, puse mi script, y funcionó a la perfección. Mi problema era que antes de agregar los eventos facilitados por el desarrollador del widget, mis scripts solo se ejecutaban 1 sola vez, y al momento de agregar más campos dinámicos, estos scripts ya se habían ejecutado y por lo tanto los campos dinámicos, a excepción del primero, no se autollenaban.