Quiero crear un campo de entrada con fecha, pero cuando el usuario escribe su nombre para buscar, también funciona en el mismo campo.
Más específicamente, quiero crear un campo de entrada dinámico con texto y campo de entrada de fecha en un botón de filtro de búsqueda en JavaScript .
¿Es posible crear un campo con fecha y luego, cuando el usuario desee buscar por nombre, podrá buscar el nombre en el mismo campo y, si desea buscar, filtrar por fecha, también podrá buscar en el mismo campo?
Si es posible, ¿cómo puedo hacer esto?
Puede usar setAttribute(attr, value) para cambiar los tipos de atributos. Más se puede encontrar aquí
Ejemplo usando botones:
function searchByName(){ document.getElementById("search").setAttribute("type","text"); } function searchByDate(){ document.getElementById("search").setAttribute("type","date"); } <button onclick="searchByName();">Search by name</button> <button onclick="searchByDate();">Search by date</button> <input type="date" name="search" id="search" />EDITAR
Si desea cambiar dinámicamente según la entrada, puede probar esto:
const searchInput = document.getElementById("search"); searchInput.addEventListener("keydown",(e)=>{ const isNumber = /\d/.test(e.key) if(isNumber){ searchByDate(); } else{ searchByName() } },{once:true}); function searchByName(){ document.getElementById("search").setAttribute("type","text"); } function searchByDate(){ document.getElementById("search").setAttribute("type","date"); } <input type="date" name="search" id="search" />PD: el script anterior se ejecutará solo una vez. Si su usuario presionó la primera tecla un número, la entrada permanecerá como fecha; de lo contrario, cambiará a texto