Tengo varios formularios creados usando for loop y estoy pasando el Id. de campo que es único para todos los formularios y campos al método javascript pero no lee el valor usando id.
Cualquier otra forma de enviar la identificación para que pueda obtener el valor de campo exacto en el javascript para el procesamiento de ajax. Cualquier ayuda sería muy apreciable.
<% String js = "Id" + count; %> <input name='Id' label="" id='Id<%=count%>' style="width:100px;" onChange="javascript:getName('<%=js %>')" /> function getName(count) { String field = count; var field1 = document.getElementById(field).value; alert(field1); } Mientras que field1 muestra null
En primer lugar el siguiente código String field = count; es incorrecto, debe reemplazar String por var porque así es como funciona la declaración de variables de JavaScript, pero de todos modos puede deshacerse de esta línea.
Y tu JS será:
function getName(count) { var field1 = document.getElementById(count).value; alert(field1); }Mejoramiento:
Tenga en cuenta que puede pasar la id directamente en su JSP de esta manera:
<input name='Id' label="" id='Id<%=count%>' style="width:100px;" onChange="javascript:getName(this.value)" />Y en tu JS:
function getName(count) { alert(count); }Tienes que hacerlo así
function getName(count) { // String field = count; var field = count; var field1 = document.getElementById(field).value; alert(field1); }Javascript admite la creación de variables utilizando la palabra clave var, no la cadena.
Puedes usar
onChange="javascript:getName(this)"y en javascript
function getName(ref) { var id= ref.id; alert(id); }