Javascript 如何使用JS/Jquery检测输入值何时动态变化
我能够检测输入是否在键入、粘贴等过程中更改了值,但如果值从另一个脚本动态更改,我无法检测: 假设我有一个输入Javascript 如何使用JS/Jquery检测输入值何时动态变化,javascript,jquery,input,dynamic,triggers,Javascript,Jquery,Input,Dynamic,Triggers,我能够检测输入是否在键入、粘贴等过程中更改了值,但如果值从另一个脚本动态更改,我无法检测: 假设我有一个输入 <input id="testInput" value="Type Here" /> 这是可行的,但如果值从另一个脚本动态更改,则无法触发警报: $('#testInput').val("Dynamic Value"); //This doesn't show the alert 我希望能够通过键入、粘贴或从脚本或操作动态检测值是否发生了更改 .val在许多不同的地方执行
<input id="testInput" value="Type Here" />
这是可行的,但如果值从另一个脚本动态更改,则无法触发警报:
$('#testInput').val("Dynamic Value"); //This doesn't show the alert
我希望能够通过键入、粘贴或从脚本或操作动态检测值是否发生了更改
.val在许多不同的地方执行,因此在代码中更改.val以获得其他类似.val.triggerchange的内容是不可取的
下面是一个JSFIDLE,其中有一个更好的示例:
另一种方法是重写函数$.fn.val 这是一个开始的基本方法 var$val=$.fn.val; $.fn.val=函数newval{ 如果这个.attr'id'='target'这个.trigger'输入'; $val.callthis,newVal; } $'target'。在'input'上,函数{ 警觉改变; }; $'target'.val'Ele from Stack'; $'target2'.val'Ele from Stack2';
只要触发事件
$('#testInput').val("Dynamic Value").trigger("input");
我不知道你的答案
重写.val函数时。。。您可以为偶数触发器添加一个图形,而不是比较id!如果未提供,则常规的.val函数没有任何更改。如果提供,它将触发事件
无论如何,您都必须以编程方式更改值的每个位置,但要以更实际的方式进行更改
var$val=$.fn.val;
$.fn.val=函数newval,eventToTrigger{
如果eventToTrigger!=null this.triggereventToTrigger;
$val.callthis,newVal;
}
$'.someClass'。在“输入”上,函数{
警报程序输入!;
};
$'.otherClass'。关于“更改”,函数{
以编程方式更改警报!;
};
$'.someClass'.val'Hello you!','输入';
$'.otherClass'.val'Doing fine','change';
美元“随便”,瓦尔“嘿嘿”;
输入粘贴键控更改===input@Ele,谢谢你的更正。看看这里:@FrankerZ有很多地方可能会执行.val,我不想去更改每一个。val,我只想检测它何时执行,thanks@multimediaxp这并没有改变每一个。瓦尔。这将覆盖jQuery中的main.val函数。有许多地方可能会执行.val,我不想更改每个.val,我只想检测它何时执行。很好,但这会影响脚本中的任何其他val,感谢这是一个解决方案,但有更干净的方法吗?Thanks@multimediaxp检查是这个样本代码为我工作,非常感谢你;
$('#testInput').val("Dynamic Value").trigger("input");