根据我的经验,input type="text" onchange事件通常只在你离开(blur)控件之后才会发生.
有没有办法强制浏览器onchange每次textfield内容更改时触发?如果没有,那么"手动"追踪这个最优雅的方式是什么?
使用onkey*事件是不可靠的,因为您可以右键单击该字段并选择"粘贴",这将更改该字段而不需要任何键盘输入.
是setTimeout唯一的方法吗?丑陋的:-)
change当我用按钮更改其值时,我试图在文本框上触发事件,但它不起作用.检查这个小提琴.
如果您在文本框中键入内容并单击其他位置,change则会触发.但是,如果单击该按钮,文本框值将更改,但change不会触发.为什么?
我今天早上一直在寻找,我找不到任何简单的解决方案...基本上,我想捕获输入元素的变化,但也知道以前的值.
这是一个更改事件和最简单形式的输入元素.显然,我可以使用$(elem).val()来获取新值,但是我是否因为获得之前的值而缺少一个偷偷摸摸的方法?我没有在jQuery API中看到任何东西来执行此操作,但也许有人已经完成了这个并且有一些提示?
<script>
$(document).ready(function(){
$('#myInputElement').bind('change', function(){
//var oldvalue = ???
var newvalue = $(this).val();
});
});
</script>
<input id="myInputElement" type="text">
Run Code Online (Sandbox Code Playgroud)
我不反对编写我自己的解决方案,我只是想确保我不在这里重新创建轮子.
我有一个文本输入,其内容由脚本而不是用户更改.所以我想在值发生变化时触发事件.我找不到合适的活动.我甚至在StackOverflow上发现了这个,但它不是我正在寻找的解决方案.
如何使用jQuery和文本输入使这个值设置如下:
myTextControl.value = someValue
Run Code Online (Sandbox Code Playgroud)
在这里,我想触发一个事件来查看新值.
是否有可以从<input type=text>(或contentEditable - 任何单行输入字段)元素中提取所有文本事件的库?
特别是,我需要知道文本何时被更改:
最好是改变了什么(是否以及插入,删除或替换了哪些文本).
需要使用Chrome,Safari,Firefox 3 +,IE9 +.
我想检测输入字段中文本/值的变化.所以我读了很多例子并尝试下面的代码.但它不起作用.这是小提琴预览.即使我用js代码改变值我想要检测到这些变化.
HTML
<input type="text" id="exNumber"/>
Run Code Online (Sandbox Code Playgroud)
JavaScript的
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
// console.log('Mutation type: ' + mutation.type);
if ( mutation.type == 'childList' ) {
if (mutation.addedNodes.length >= 1) {
if (mutation.addedNodes[0].nodeName != '#text') {
// console.log('Added ' + mutation.addedNodes[0].tagName + ' tag.');
}
}
else if (mutation.removedNodes.length >= 1) {
// console.log('Removed ' + mutation.removedNodes[0].tagName + ' tag.')
}
}
if (mutation.type == 'attributes') {
console.log('Modified ' + mutation.attributeName + ' attribute.')
}
});
}); …Run Code Online (Sandbox Code Playgroud) 我隐藏了这个输入:
<input id="j_idt26:myValue" type="hidden" name="j_idt26:myValue" value="0?100?">
Run Code Online (Sandbox Code Playgroud)
我想在第一次设置值时提醒"嘿",然后每次更改时.
我有这样的事情:
$(document).ready(function(){
var $hello= $('[id$=myValue]');
$hello.bind("change load", function(){
alert('hey');
});
});
Run Code Online (Sandbox Code Playgroud)
但没有任何东西出现.
如果你能帮忙
谢谢
目标:
当用户在文本框中键入字符时,会出现一个按钮.当用户使用退格键清除文本框但按住该键几秒钟时,立即隐藏按钮.
问题:
如果用户键入单个字符,并使用退格键将其删除 - 通过按住退格键几秒钟 - 隐藏按钮之前会有一段延迟.仅当用户只键入一个字符然后按住退格键而不放手时才会发生这种情况.如果用户输入多个字符,然后按住退格键直到文本框为空,则隐藏按钮没有延迟.
<input type="text" id="tbox"></text>
<button type="button" id="btn" style="display:none;">push me</button>
$('#tbox').on('keydown keypress keyup',function(){
if($('#tbox').val() !== '') {
$('#btn').css({'display':'block'});
} else {
$('#btn').css({'display':'none'});
}
});
Run Code Online (Sandbox Code Playgroud)
的jsfiddle:
有没有办法绑定jQuery中的文本字段的更改事件?IE每当值改变时,调用一些函数?我目前正在使用,keyup但并未触及所有情况,即右键单击并粘贴.
谢谢.
当JavaScript修改输入类型=“ text”时,我想立即检测到它的变化。当用户手动更改它时,可以通过以下方式触发检测:
onchange="myfunction();" onkeyup="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();"
Run Code Online (Sandbox Code Playgroud)
我只是想不通这一点。
如何在动态更改时检测输入值的更改.因为txt2上的更改清除了txt1中的值.我需要检测它已清除或更改.
Onchange不会这样做.
<input id="txt1" type="text" onchange="SetDefault();" onpaste="this.onchange();" oninput="this.onchange();">
<br>
<input id="txt2" type="text" onchange="SetDefaultSecond();" onkeyup="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();">
<script>
function SetDefault(){
alert("Change1");
}
function SetDefaultSecond(){
$("#txt1").val('');
alert("Change2");
}
</script>
Run Code Online (Sandbox Code Playgroud)