我想要输入文本元素中的实时更改事件
I want a live change event in input text element
我想处理文本输入字段中的更改事件。 但是,当鼠标失去对元素的焦点时,将触发该事件。我想触发键入更改事件。我应该为jQuery中的实时事件做什么?
我用过:
jQuery('#element').on('change',function(){
//do the stuff
});
您可以使用
keyup()
事件:
$('#someInput').keyup(function() {
// Your code here
});
还有一个输入事件:
$('#someInput').on('input', function() {
// Your code here
});
正如FRNHR指出的那样,最好使用input
事件,因为:"输入将处理任何更改 - 例如,如果您在字段中粘贴某些内容,输入将触发,但Keyup不会。
您有三个与键相关的事件可供选择,keyup
,keydown
和keypress
;假设您键入字符串abc
:
$('#demo').on('keyup', function(e){
console.log(this.value);
});
// a
// ab
// abc
JS小提琴演示。
$('#demo').on('keydown', function(e){
console.log(this.value);
});
//
// a
// ab
JS小提琴演示。
$('#demo').on('keypress', function(e){
console.log(this.value);
});
//
// a
// ab
JS小提琴演示。
不同之处在于,正如输出(大致)所示,keyup
和keypress
在元素值更新之前响应;因此,如果您想知道按下的键,则必须在keypress
和keyup
处理程序中使用e.which
(返回按下键keyCode
的jQuery规范化按键事件),然后将其添加到value
属性中。 e.which
将在 keyup
下也返回正确的keyCode
,但您不必手动添加该密钥即可获取更新的value
。
你应该使用keyUp()
$( "#target" ).keyup(function() {
alert( "Handler for .keyup() called." );
});
由于现在是 2021 年,这也可以通过"输入"来完成。但是你可能需要看看 Vue.js如果做到这一点要容易得多。
jQuery(document).on('input', '#element', function (e) {
var input = $(this).val();
var target = $('.target');
var fallbackName = target.attr('data-fallback-text'); // Can be handy
liveInputChange(input, target, fallbackName);
});
function liveInputChange(input, target, fallbackName) {
if (input === "" || input === null) {
target.text(fallbackName);
} else {
target.text(input);
}
}
相关文章:
- 为什么我没有得到对Comet服务器流事件的实时响应
- jQuery:使用实时事件添加tabindex属性
- 谷歌分析点击事件未显示在行为>事件仅在实时中看到>事件
- HTML5服务器发送的事件不是实时的
- 我想要输入文本元素中的实时更改事件
- JQuery 实时提交事件不调用
- 通过实时事件触发点击
- 如何通过点击事件禁用智能街道/实时地址
- 将实时 jQuery 事件应用于 iframe 内容
- 实时触发来自 Rails 的主干事件
- jQuery可在iPad上拖动实时事件
- jQuery 1.7+中的实时事件
- 如何在类上设置实时事件列表器,以自动调整其高度并调整其内容的大小
- 如何从javascript小部件中删除所有jquery实时事件
- 当使用实时事件时,JQuery slideToggle不能在IE8中工作
- ZeroClipboard / zClip——如何绑定实时事件
- jQuery重新绑定或新元素上的实时事件
- 在实时事件中设置jquery筛选器
- 在jQuery中列出所有实时事件
- 有关实时事件的问题