Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测jQuery中输入[type=text]的值更改_Jquery - Fatal编程技术网

检测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@liho1eye
paste
只是我想到的一个方法,我宁愿听一个确定的更改,也不必考虑所有不同的传入路径。@Jeriko这是唯一可以更改值的两种方法(除了通过js代码进行明显的更新)。您还想捕获Ctlr-X(
cut
).@NicolasS.Xu:如果使用
console.log()
而不是
alert
,则直接指定值不会触发任何DOM事件会更好。对于keyup to
alert
@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 
});