gpt4 book ai didi

javascript - 函数适用于 'keypress' 事件,但不适用于我触发的相同 'keypress' 事件

转载 作者:行者123 更新时间:2023-11-28 06:34:03 30 4
gpt4 key购买 nike

这是我的代码:

$( '#Example' ).on( "keypress", function( keyEvent ) {

if ( keyEvent.which != 44 ) {

myFunction( keyEvent, $(this) );

} else {

event.preventDefault();
var myEvent = jQuery.Event( "keypress" );
myEvent.which = 46;
$(this).trigger( myEvent );

}
});


function myFunction( event, element ) {
//do stuff
console.log( "Finished." );
}

如果按“.” (which = 46),myFunction 完美地完成了任务,并且事件“.”被输入。但是,如果按“,”(which = 44),myFunction也会做一些事情,但事件“.”手动触发不输入!在这两种情况下,控制台都会打印“Finished”。

我需要按照以前的方式做,因为如果我这样做:

$( '#Example' ).on( "keypress", function( keyEvent ) {

myFunction( keyEvent, $(this) );

});


function myFunction( event, element ) {

if (event.which == 44) {

event.which = 46;

}

//do stuff
event.preventDefault();
$( '#Example' ).val('.'); //is a example

}

作为“.”不是由事件创建的,而是由我手动创建的,.on( 'input', anotherFunction() ) 事件没有被触发。

最后,myFunction如下:

function myFunction(event, element) {

var text = element.val();

if (((event.which != 46 || element.val().indexOf('.') != -1) &&
((event.which < 48 || event.which > 57) &&
(event.which != 0 && event.which != 8))) ||
((event.which == 46) && (element.val().indexOf('.') == -1) &&
((text.length - element[0].selectionStart) > 2))) {

event.preventDefault();

}

if ((text.indexOf('.') != -1) &&
(text.substring(text.indexOf('.')).length > 2) &&
(event.which != 0 && event.which != 8) &&
(element[0].selectionStart >= text.length - 2)) {

event.preventDefault();

}
}

有什么建议吗?

提前致谢!

最佳答案

第一个函数的问题是您有 event.preventDefault(); ,它应该是 keyEvent.preventDefault(); 因为事件未定义:

$( '#Example' ).on( "keypress", function( keyEvent ) {

if ( keyEvent.which != 44 ) {

myFunction( keyEvent, $(this) );

} else {

keyEvent.preventDefault();
var myEvent = jQuery.Event( "keypress" );
myEvent.which = 46;
$(this).trigger( myEvent );

}
});

关于javascript - 函数适用于 'keypress' 事件,但不适用于我触发的相同 'keypress' 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34443913/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com