Tengo una lista de elementos de casilla de verificación de entrada representados con manillares
<form method="POST" action='/processImages'> <input type='checkbox' id='.DS_Store' name='.DS_Store' /> <p>.DS_Store</p> <input type='checkbox' id='.localized' name='.localized' /> <p>.localized</p> <input type='checkbox' id='Courses' name='Courses' /> <p>Courses</p> <input type='checkbox' id='Home' name='Home' /> <p>Home</p> <input type="submit" value="run">y quiero pasar los nombres a la otra función o representar sus nombres en otra ruta Con este código:
const processRouter = express.Router() const processRouter = express.Router() processRouter.post('/', async (req, res, next) => { const test =(req.body) res.send(test) }) app.use('/processImages', processRouter)lo que estoy obteniendo es:
{"Cursos":"en","Inicio":"en"}
Pero quiero obtener solo los nombres como {"Cursos", "Inicio"} Cómo deshacerse de este "encendido" en cada elemento, supongo que esto proviene de la casilla de verificación del tipo de entrada.
Soy un principiante y realmente no puedo entender cómo debo solicitar solo "nombres". Gracias
No sería posible obtener {"Courses", "Home"} porque este es un formato JSON no válido. Sin embargo, podría pasar una matriz ["Courses", "Home"] a través de la solicitud.
Si la solicitud que envía su formulario no es algo que desea, considere escribir su propia función onSubmit para manejar la llamada AJAX.
No obstante, ¿hay alguna razón en particular por la que desea modificar la solicitud? Puede analizar el formato original para obtener lo que desea:
function iterate(input) { //Example input: {"Courses":"on","Home":"on"} const arr = []; Object.entries(input).forEach(function ([key, value], index) { console.log(key, value, index); if (value === "on") arr.push(key); }); return arr; } console.log(iterate({ "Courses": "on", "Home": "on" })); console.log(iterate({ "Courses": "on", "Home": "off" }));