我正在尝试将onchange函数添加到三个单独的元素,如果用户更改日,月或年,将重建日历。页面加载并正常工作,直到我更改三个值中的一个,然后它只返回没有css格式的基本日历,并且页面中的所有其他元素都消失了。开发人员工具中没有显示错误。
我在线查看了很多示例,我认为我的语法是正确的。我最初在页面加载时调用该函数,这很好。
<div id="bottomleft">
<script type="text/javascript" onload="buildCalendar();">
</script>
</div>
然后,我将对三个元素中的每个元素进行更改调用,如下所示。
<input type="number" min="1" max="31" step="1" id="myday" onchange="buildCalendar();">
<select id="mymonth" onchange="buildCalendar();">
<input type="number" min="100" max="2016" id="myyear" onchange="buildCalendar();">
我的完整CODEPEN在这里:http://codepen.io/anon/pen/qbEXpJ但由于某种原因日历没有在这里显示,尽管它在chrome中工作正常。 如果您发现任何错误,请告诉我。
答案 0 :(得分:2)
当你这样做时:
document.write("foo")
你实际上覆盖了整个页面,这就是为什么你在OnChange事件中获得没有css格式的所有内容的原因。听起来很奇怪它实际上与onload一起工作,但你可以在CodePen中看到它在那里不起作用。尝试设置div并在其上书写:
$("#myDiv").html("foo")