求助:修改JS代码实现点击按钮触发信息显示功能
修改方案
核心修改点
- 移除下拉框的
onchange事件绑定 - 给BUSCAR按钮添加
onclick事件,触发时传入下拉框元素 - 修正HTML中option的属性错误(
selected应作为独立属性,而非value的一部分)
修改后的完整代码
JavaScript(无需调整函数逻辑,仅确保getElementById拼写正确)
function mostrarProvincia(provincia) { console.log(provincia.value); if (provincia.value == 1) { document.getElementById('lima').classList.remove('d-none'); } else { document.getElementById('lima').classList.add('d-none'); } }
CSS(保持不变)
.d-none { display: none; }
HTML(关键修改部分已标注)
<div class="alinear_dropdown"> <!-- 移除onchange事件 --> <select id="provincia"> <!-- 修正selected属性位置 --> <option value="0" selected> Selecciona tu Provincia ...</option> <option value="1">LIMA</option> </select> <!-- 添加onclick事件,传入下拉框元素 --> <button onclick="mostrarProvincia(document.getElementById('provincia'))" style="padding: 20px 32px;width: 18rem;background-color:#DC241F;color: #FFFFFF;">BUSCAR</button> <div id="lima" class="d-none"> <div style="background-color:#F1F1F1; border-radius: 1rem;"> <h3 style="padding: 25px 10px 0px 20px;">Automotores Yoshival Huaraz</h3> <a href="https://goo.gl/maps/hFrzeSaDVmXfNQiv8"> <p style="padding: 0px 10px 0px 20px;">Av. Monterrey S/N (Carretera Huaraz Monterrey). </p> </a> <div style="display: flex;align-items: center;padding: 0px 10px 0px 20px;"> <p>+56 9 9711 8500</p> <a href="tel:+56 9 9711 8500" style="padding-left: 20px; padding-right: 20px;color:#DC241F;font-weight: 900;">Llamar</a> </div> <div style="display: flex;align-items: center;padding: 0px 10px 0px 20px;"> <p>+56 9 9711 8500</p> <a href="tel:+56 9 9711 8500" style="padding-left: 20px; padding-right: 20px;color:#DC241F;font-weight: 900;">Llamar</a> </div> </div> </div> </div>
说明
点击BUSCAR按钮时,会获取下拉框的选中值,根据值判断是否显示id="lima"的内容,完全替代原来的下拉框change触发逻辑。另外修正了option的selected属性写法错误,确保默认选中的选项能正常工作。
内容的提问来源于stack exchange,提问作者Ayrton Valdivia Higueras
相关产品推荐
相关产品推荐

