tengo una selección donde cuando elijo la opción periódica, un div cambia para mostrar el bloque, el problema es cuando quiero usar el valor "Periodica" con P mayúscula, el js simplemente ya no funciona.
sé que puedo enviar el valor periódico pero necesito almacenar este valor como periódico
function showDiv(divId, element) { document.getElementById(divId).style.display = element.value == "periodica" ? 'block' : 'none'; } #hidden_div { display: none; } <select required name="tdonacion" class="form-control form-group col-md-12" onchange="showDiv('hidden_div', this)"> <option value="Puntual">Puntual</option> <option value="periodica">Periódica</option> </select> <div id="hidden_div"> <select required name="dperiodica" class="form-control form-group col-md-12"> <option value="Mensual">Mensual</option> <option value="Trimestral">Trimestral</option> <option value="Semestral">Semestral</option> <option value="Anual">Anual</option> </select> </div>Js distingue entre mayúsculas y minúsculas. Puede probar element.value == "Periodica" o usar toLowerCase()
if("periodica" == "Periodica"){ console.log("Js isn't case sensitive") }else{ console.log("Js is case sensitive") } let text = "Periodica"; if(text.toLowerCase() == "periodica"){ console.log("works") } console.log(text + " didn't change");Prueba esto:
JavaScript:
function showDiv(divId, element){ document.getElementById(divId).style.display = element.value == "Periodica" ? 'block' : 'none';}HTML:
<select required name="tdonacion" class="form-control form-group col-md-12" onchange="showDiv('hidden_div', this)"> <option value="Puntual">Puntual</option> <option value="Periodica">Periódica</option> </select>Puede usar el método toLocaleLowerCase() .
mi sugerencia:
function showDiv(divId, element){ document.getElementById(divId).style.display = element.value.toLocaleLowerCase() == "periodica" ? 'block' : 'none';}Espero que funcione para ti.