当用户点击HTML5日历元素中的日期时,我需要能够运行JavaScript函数。我尝试使用onchange
,但是当用户输入日期时它也会触发:
<input type="date" onchange="alert('fired');"/>
似乎事件在他们输入“完整”日期之前不会触发,这个日期很整洁但不符合我的需要。
有没有办法只在日历中点击日期时触发?或者可能在两种情况下都会发生火灾,但会检测出它是哪种类型的行动?
答案 0 :(得分:0)
我认为您要禁用键盘输入,因此用户只能通过鼠标选择有效日期。
您还想检测日历中的点击次数。
为此,我有了这个答案的更新演示:
请注意点击处理程序对无效日期点击的空字符串值。
请注意,不建议使用HTML属性编写事件处理程序。
以下是演示的更新代码:
<input type="date"
onchange="alert(window.event.type+' event handler for '+this.type+' noticed \''+this.value+'\'');"
onclick="alert(window.event.type+ ' event handler for '+this.type+ ' noticed \''+this.value+'\'');"
onkeydown="window.event.preventDefault();
alert(window.event.type+' event handler for '+this.type+' prevents keyboard input for value \''+this.value+'\'');"
onkeypress="window.event.preventDefault();
alert(window.event.type+' event handler for '+this.type+' prevents keyboard input for value \''+this.value+'\'');"
oninput="alert(window.event.type+' event handler for '+this.type+' noticed \''+this.value+'\'');" />