这是代码,我想要在单击您要预订吗?显示“calendario_reservation”div,但有问题:
activar_reserva();
function activar_reserva(){
if(document.getElementById('activar_reserva').checked){
document.getElementById('calendario_reserva').style.display = "unset";
}else{
document.getElementById('calendario_reserva').style.display = "none";
}
}
<form action="#" method="post">
<input type="checkbox" id="activar_reserva" onclick="activar_reserva();">
<label>¿Quieres reservar?</label>
<div class="" id="calendario_reserva">
AQUI UN CALENDARIO PARA SELECCIONAR LA FECHA.
</div>
<br/>
<button type="submit" name="action" value="contestar" class="form-control fondo2 color1" style="margin-top:10px;">Enviar</button>
</form>
欢迎来到 HTML DOM 的奇特之处。
这不是 Javascript 的错,而是DOM 在浏览器中的实现方式。
HTML5 非规范(不推荐)允许访问具有唯一 ID 的任何元素,如下所示:
因此,您定义了
input
这样的元素:发生了什么事?
通过声明该元素,window.activate_reservation 成为与 具有相同值的有效属性
document.getElementById('activar_reserva')
。您声明的函数与此元素冲突并且不再可访问。更改函数的 ID 或名称,一切正常。无论如何,我建议使用该方法
addEventListener
来处理文档元素上的事件。确认:
将函数重命名
activar_reserva
为activarReserva
,而不是使用方法onclick
使用onchange
.问题是元素 id 和要为元素执行的函数不能使用相同的名称,名称相同:
同样,我为您提供另一种编写函数的方法,以更简单的方式:
一种方法是调用侦听器并从 html 中删除该方法
在这里我用jquery留下答案
希望对你有帮助