gpt4 book ai didi

javascript - 复制字符串文本,粘贴到6个输入文本框中,第一个框显示完整字符串

转载 作者:行者123 更新时间:2023-11-30 09:34:24 25 4
gpt4 key购买 nike

我有一个关于在 6 个不同的输入文本字段中复制和粘贴字符串(例如“123456”)的问题。输入文本字段的最大长度也为 1,我首先必须从字段中删除此属性,以便将整个 6 个字符粘贴到每个输入字段中。我现在的解决方案有效,但我遇到了一个小问题,因为一旦我将整个 6 位数字粘贴到第一个框上,它就会将整个字符串放在第一个框上一小段时间,然后它将数字放在其他字段上。问题是,我该怎么做才能看不到粘贴在第一个框上的整个数字,而只显示一个数字?这是一个工作示例:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<title>Heading Example</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
</head>
<body>

<input type="text" name="numberInput" value="" tab-index="0" placeholder="#" maxlength="1">
<input type="text" name="numberInput" value="" tab-index="1" placeholder="#" maxlength="1">
<input type="text" name="numberInput" value="" tab-index="2" placeholder="#" maxlength="1">
<input type="text" name="numberInput" value="" tab-index="3" placeholder="#" maxlength="1">
<input type="text" name="numberInput" value="" tab-index="4" placeholder="#" maxlength="1">
<input type="text" name="numberInput" value="" tab-index="5" placeholder="#" maxlength="1">

<script src="https://code.jquery.com/jquery-2.2.4.min.js" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script>
$(document).ready(function(){
$('input[type="text"]').bind('paste', function() {
var self = this,
textArray;

// Short pause to wait for paste to complete, remove attribute for it to paste the 6 digits into the text boxes
$('input[type="text"]').removeAttr('maxlength');
setTimeout( function() {
textArray = $(self).val().split('');
$('input[type="text"]').each(function(index,element){
$(element).val(textArray[index]);
$(element).attr('maxlength','1');
});
}, 100,function(){
//Do some action needed
});
});
});
</script>
</body>
</html>

非常感谢。

最佳答案

您可以使用 paste 事件的属性来阻止默认操作并获取预期的粘贴文本,然后执行您的逻辑,同时删除 setTimeout 因为您不再使用 native 粘贴事件。

此外,没有必要删除和添加我能看到的 maxlength 属性 - 无论如何您只插入一个字符,并且由于我们绕过了 native 粘贴事件,完整的字符串永远不会真的点击了任何输入。

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<title>Heading Example</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
</head>
<body>

<input type="text" name="numberInput" value="" tab-index="0" placeholder="#" maxlength="1">
<input type="text" name="numberInput" value="" tab-index="1" placeholder="#" maxlength="1">
<input type="text" name="numberInput" value="" tab-index="2" placeholder="#" maxlength="1">
<input type="text" name="numberInput" value="" tab-index="3" placeholder="#" maxlength="1">
<input type="text" name="numberInput" value="" tab-index="4" placeholder="#" maxlength="1">
<input type="text" name="numberInput" value="" tab-index="5" placeholder="#" maxlength="1">

<script src="https://code.jquery.com/jquery-2.2.4.min.js" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script>
$(document).ready(function(){
$('input[type="text"]').bind('paste', function(e) {
e.preventDefault();
var text = e.originalEvent.clipboardData.getData('text');
var textArray = text.split('');

$('input[type="text"]').each(function(index,element){
$(element).val(textArray[index]);
});
});
});
</script>
</body>
</html>

关于javascript - 复制字符串文本,粘贴到6个输入文本框中,第一个框显示完整字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44411478/

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