gpt4 book ai didi

Javascript keyup shiftKey 不是预期的行为

转载 作者:行者123 更新时间:2023-11-29 15:42:30 24 4
gpt4 key购买 nike

代码示例 http://jsfiddle.net/rigaconnect/3Mcxv/6/

这是具有以下行为的 javascript:在输入字段中输入一些值;然后按住 ctrlKey 并用鼠标在输入字段下方单击;上面输入字段的值被复制到下面。

$(document).ready(function(){
$("input").on('click', function(e) {
var name1 = $(this).closest('tr').prev().find('td:eq('+$(this).closest('td').index()+')').find('input').val();
if(e.ctrlKey) $(this).val(name1).trigger('change');
});
});

以我想要的相同方式:如果我按住 shiftKey 并按下底部箭头按钮,则当前输入字段中的值将显示在下方的输入字段中。这是我试过的代码:

$(document).ready(function(){
$("input").keyup(function(e) {
var name1 = $(this).closest('tr').prev().find('td:eq('+$(this).closest('td').index()+')').find('input').val();
if(e.shiftKey) $(this).val(name1).trigger('change');
});
});

但是,如果我在输入字段中输入一些值,然后按住 shiftKey 并按下底部箭头按钮,值将从当前输入字段中消失。我需要该值保留在当前输入字段中,另外相同的值出现在正下方的输入字段中。

我想这是因为 prev().find 它发现 previous 是空白的。找到电流的正确代码是什么?我更改为 $(this).find 但没有工作....

最佳答案

这是您想要的功能吗?

http://jsfiddle.net/xQxGa/11///更新

$(document).ready(function () {
var isShiftPressed = false,
shiftCode = 16, // shift key code
downArrowCode = 40, // down arrow key code
$table = $('table'),
$inputs = $('input',$table);

$table
.delegate('input', 'keydown', function(e) {

if(e.which===shiftCode){
// shift was pressed
isShiftPressed = true;
} else if(isShiftPressed && e.which===downArrowCode){
// shift and down arrow were pressed
var newVal = this.value,
i = $inputs.index(this),
next = $inputs.eq(i+1);

if(next){
// move value and focus to the next
next.val(newVal)
.focus();
}
}

})
.delegate('input', 'keyup', function(e) {
// no key pressed anymore
isShiftPressed = false;
});

});

尝试查看 jQuery 页面中的示例。

关于Javascript keyup shiftKey 不是预期的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17029864/

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