Usando el código de muestra de W3schools, estoy tratando de configurar un solo controlador de eventos que se activará cuando se cambie cualquiera de los múltiples elementos de 'entrada' en un formulario.
Lo que quiero es recibir el parámetro de nombre <input name=xxxx> Según tengo entendido, p1 y p2 deben contener el evento y el nombre del campo <input name=xxxx> que activó el evento. En su lugar, aparece un error de referencia, "p1 no está definido" del controlador de eventos. En la búsqueda, encontré muchas soluciones complicadas a esta pregunta, algunas de las cuales no entiendo, pero ninguna que realmente resuelva mi problema. ¿Qué estoy haciendo mal?
function field_check(event) { var the_input = event.target.id; alert("field_check: event was: " + event + "\nand the entry field was: " + the_input); } document.getElementById("add_data").addEventListener("change", field_check); input { background-color: lightblue; } input:focus { background-color: yellow; } <form name=add_data id=add_data> <input type="text" class="ship" name="fname" id="fname" autofocus><br \> <input type="text" class="ship" name="lname" id="lname" required><br /> <input type="text" class="ship" name="addr1" id="addr1"><br /> <input type="text" class="ship" name="addr2" id="addr2"><br /> <input type="text" class="ship" name="city" id="city"><br /> <input type="text" class="ship" name="p_code" id="p_code"> </form>quieres hacer
var s = document.getElementById("add_data"); s.addEventListener("change", function(event) { field_check(event, event.target.name); });o incluso más simple
document.getElementById("add_data").addEventListener("change", field_check);y tiene
function field_check(event) { console.log(event.target.name); } function field_check(event) { console.log(event.target.name); } document.getElementById("add_data").addEventListener("change", field_check); input { background-color: lightblue; } input:focus { background-color: yellow; } <form name=add_data id=add_data> <input type="text" class="ship" name="fname" id="fname" autofocus><br \> <input type="text" class="ship" name="lname" id="lname" required><br /> <input type="text" class="ship" name="addr1" id="addr1"><br /> <input type="text" class="ship" name="addr2" id="addr2"><br /> <input type="text" class="ship" name="city" id="city"><br /> <input type="text" class="ship" name="p_code" id="p_code"> </form>