如何捕获输入框的清空事件(input type='text')?

5
<input type='text' onchange="reportAnswer(1, this.value);" 
onkeyup="this.onchange();" onpaste="this.onchange();" 
oncut="this.onchange();" 
onclear = "this.onchange();" />

输入图像描述

如何捕捉这个变化?这是IE11。

附:我添加了onclear处理程序,因为我已经没有什么想法可以做了。


那个 [x] 是由什么提供的?这不是大多数浏览器通常提供的东西。 - T.J. Crowder
基本想法是,“当某些事件发生时,清除输入字段的值。例如单击 [x]”。请参阅问题 如何在我的HTML文本输入框内放置一个类似iPhone的清除按钮? 的答案。 - shawnzhu
@shawnzhu:OP确实说他只是添加了onclear,因为他没有更多的想法了。 - T.J. Crowder
@T.J.Crowder - 这是IE11。 - Kosmo零
@Kosmos:IE11对我来说没有添加那个:http://jsbin.com/hicave/1 - T.J. Crowder
3个回答

5

您没有说明提供 [x] 的内容,这可能是相关的,但您尚未尝试的一个事件是 input,因此:实时示例

<input type='text'
    onchange="reportAnswer(1, this.value);"
    onkeyup="this.onchange();"
    onpaste="this.onchange();"
    oncut="this.onchange();"
    oninput="this.onchange();" />

不确定它是否有效,在Windows 8.1上,IE11没有为我添加那个框。

更有可能的是,您需要连接到提供该[x]的内容所提供的东西。


注:-1 不是我发出的,这是 IE11。 - Kosmo零
@Kosmos:请查看问题的评论。 - T.J. Crowder
2
oninput 帮了我大忙 :O 谢谢。但不知道为什么 IE11 没有为你添加相同的东西。 - Kosmo零
是的。很遗憾,这会导致我的 reportAnswer 在其他情况下执行得更多,但我会想办法解决 :P - Kosmo零

4
你可以使用"oninput"事件:
// Try to change value of the input below
<input id="input1" />

var input = document.getElementById("input1");
input.oninput = function(){alert("Value changed");}

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接