Javascript jQuery输入值未定义或为白色文本

Javascript jQuery输入值未定义或为白色文本,javascript,jquery,dom-events,jquery-events,Javascript,Jquery,Dom Events,Jquery Events,这个问题可能已经被问过一千次了,但我不知道是不是因为SEO,我还没有找到合适的解决方案。我要么在Chrome中得到未定义的文本,要么得到空白文本 $('input[type="text"]').on('input', (a, b) => { console.log(this.value); }); 在我也尝试过的控制台中,这会一直返回未定义: $('input[type="text"]').on('input', (a, b) => { console.log

这个问题可能已经被问过一千次了,但我不知道是不是因为SEO,我还没有找到合适的解决方案。我要么在Chrome中得到未定义的文本,要么得到空白文本

$('input[type="text"]').on('input', (a, b) => {
    console.log(this.value);
});
在我也尝试过的控制台中,这会一直返回未定义:

$('input[type="text"]').on('input', (a, b) => {
       console.log(b);
    });

$('input[type="text"]').on('input', (a, b) => {
       console.log($(this).val());
    });

$('input[type="text"]').on('input', (a, b) => {
       console.log(a.value);
    });

$('input[type="text"]').on('input', (a, b) => {
       console.log(b.value);
    });

如果您有任何想法,我们将不胜感激。

由于您使用的是es6 arrow函数格式,因此
关键字将无法满足您的期望。如果要更改上下文,请使用
e.target

看看

$('input[type=“text”])。在('input',(e)=>{
console.log(如target.value);
});

由于您使用的是es6 arrow函数格式,因此
关键字将无法满足您的期望。如果要更改上下文,请使用
e.target

看看

$('input[type=“text”])。在('input',(e)=>{
console.log(如target.value);
});

这是因为您使用的是箭头函数,其范围不同于普通函数

通常,您可以用常规函数表达式替换箭头函数&使用
$(this)
或使用事件处理程序中的目标对象来获取输入值

$('input[type=“text”])。在('input',函数(a,b)上{
log($(this.val());
});
$('input[type=“text”]”)。在('input',(a,b)=>{
console.log(a.target.value);
});

这是因为您使用的是箭头函数,其范围不同于普通函数

通常,您可以用常规函数表达式替换箭头函数&使用
$(this)
或使用事件处理程序中的目标对象来获取输入值

$('input[type=“text”])。在('input',函数(a,b)上{
log($(this.val());
});
$('input[type=“text”]”)。在('input',(a,b)=>{
console.log(a.target.value);
});


哇,这就解决了!我不知道胖箭头改变了返回值的工作方式!是的,请查看“e.target.value.test”为什么不可能这样做?值属性没有
test
属性,您想得到什么?它应该是
new RegExp(“您的正则表达式”).test(e.target.value)test
属性,您想得到什么?它应该是
new RegExp(“您的正则表达式”).test(e.target.value)
这与另一个答案相同:|@MoshFeu看得更清楚您现在添加了常规的
函数
方法。。很好。这是在你第一次评论之前添加的。请从修订历史中验证它。如果您是对的,您是对的:)这与另一个答案相同:|@MoshFeu请仔细查看您现在添加的常规
函数
方法。。很好。这是在你第一次评论之前添加的。请从修订历史中验证它。如果您是对的,您是对的:)