检测jQuery中输入[type=text]的值更改
我希望在每次特定输入框的值更改时执行一个函数。它几乎可以与检测jQuery中输入[type=text]的值更改,jquery,Jquery,我希望在每次特定输入框的值更改时执行一个函数。它几乎可以与$('input').keyup(函数)一起使用,但在将文本粘贴到框中时不会发生任何事情$input.change(函数)仅在输入模糊时触发,因此我如何立即知道文本框何时更改了值?说明 您可以使用jQuery的.bind()方法来实现这一点。看看这本书 样品 Html <input id="myTextBox" type="text"/> 更多信息 试试这个: $("input"
$('input').keyup(函数)
一起使用,但在将文本粘贴到框中时不会发生任何事情$input.change(函数)
仅在输入模糊时触发,因此我如何立即知道文本框何时更改了值?说明
您可以使用jQuery的.bind()
方法来实现这一点。看看这本书
样品
Html
<input id="myTextBox" type="text"/>
更多信息
$("input").bind({
paste : function(){
$('#eventresult').text('paste behaviour detected!');
}
})
基本上,只需说明每个事件:
Html:
试试这个:
$("input").bind({
paste : function(){
$('#eventresult').text('paste behaviour detected!');
}
})
使用以下命令:
它处理所有更改输入的方法,包括内容菜单(使用鼠标)Update-2021
从2021年起,您可以使用input
event来处理输入值更改的所有事件
$("#myTextBox").on("input", function() {
alert($(this).val());
});
原始答案
请记住,建议使用“on”而不是“bind”函数,因此请始终尝试使用如下事件侦听器:
$("#myTextBox").on("change paste keyup", function() {
alert($(this).val());
});
您还可以使用文本框事件-
<input id="txt1" type="text" onchange="SetDefault($(this).val());" onkeyup="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();">
function SetDefault(Text){
alert(Text);
}
函数SetDefault(文本){
警报(文本);
}
试试这个。。归功于
在这里回答我的问题:
这个解决方案帮助我在项目上取得进展
$("#your_textbox").on("input propertychange",function(){
// Do your thing here.
});
注:属性更改适用于IE的较低版本
$("#myTextBox").on("change paste keyup select", function() {
alert($(this).val());
});
选择浏览器建议此事件组合对我有效:
$("#myTextBox").on("input paste", function() {
alert($(this).val());
});
不要忘记
剪切
或选择
事件强>
公认的答案几乎完美,但它忘记了cut
和select
事件
cut
在用户剪切文本时触发(CTRL+X或通过右键单击)
select
在用户选择浏览器建议的选项时触发
您也应该添加它们,例如:
$("#myTextBox").on("change paste keyup cut select", function() {
//Do your function
});
那么为什么不同时绑定
keyup
和paste
事件呢检测剪切/复制/粘贴events@liho1eyepaste
只是我想到的一个方法,我宁愿听一个确定的更改,也不必考虑所有不同的传入路径。@Jeriko这是唯一可以更改值的两种方法(除了通过js代码进行明显的更新)。您还想捕获Ctlr-X(cut
).@NicolasS.Xu:如果使用console.log()
而不是alert
,则直接指定值不会触发任何DOM事件会更好。对于keyup toalert
@cytsny来说,这会非常烦人。当然,alert是烦人的,但在本例中,它是一个在值更改时执行的代码示例,可以是您想要的任何有效负载。如果右键单击并粘贴,这将在粘贴之前返回输入值。只是注意到该函数执行了很多次,只需“输入”
,无需添加任何其他内容。您如何使用它?我将它包括在HTML中,并使用$(“input”).anyChange(函数(e){console.log(e);});但它从未到达console.log lineinput在文本框上不起作用
$("#myTextBox").on("input paste", function() {
alert($(this).val());
});
$("#myTextBox").on("change paste keyup cut select", function() {
//Do your function
});