Javascript 如何使用jquery将输入复制到子输入?
我想将文本从输入复制到它自己的输入。因为我有很多人在等我 例如:Javascript 如何使用jquery将输入复制到子输入?,javascript,jquery,html,Javascript,Jquery,Html,我想将文本从输入复制到它自己的输入。因为我有很多人在等我 例如:src1至dest1,src2至dest2。src5至dest5 我不想将它们与ID配对,因此我写道: $(文档).ready(函数(){ var$src=$('.src'),//源值 $dst=$src.attr('data-dest');//来自.src-data-dest的目标id $src.on('input',function(){ $dst.val($src.val());//将显示来自.src的文本 }); });
src1
至dest1
,src2
至dest2
。src5
至dest5
我不想将它们与ID配对,因此我写道:
$(文档).ready(函数(){
var$src=$('.src'),//源值
$dst=$src.attr('data-dest');//来自.src-data-dest的目标id
$src.on('input',function(){
$dst.val($src.val());//将显示来自.src的文本
});
});代码>
Src 1:目的地1:
Src 2:Dest 2:
主要问题是,$dst
是一个字符串,它保存了数据
属性中的值,而不是jQuery对象,因此不能对其调用val()
。要解决此问题,需要在jQuery对象中使用$dst
值作为id选择器
第二个问题是,您正在从第一个.src
元素中选择单个数据属性,而不是单击的元素。要解决此问题,您需要在单击处理程序中移动该逻辑,并使用this
关键字来引用引发input
事件的元素。试试这个:
$(文档).ready(函数(){
$('.src')。在('input',function()上{
var$src=$(此);
var dst=$src.data('dest');
$('#'+dst).val($src.val());
});
});代码>
Src 1:
目的地1:
Src 2:
目标2:
嗨,请将模糊函数绑定到源输入。
我创建了这个功能
$(document).ready(function() {
var $src = $('.src');
$src.on('blur', function() {
var dest = $(this).attr('data-dest');
var $dst=$("#"+dest);
$dst.val($(this).val());
$dst.attr("data-dest",val);
});
});
您可以看到一把正在工作的小提琴您也可以使用next()
,因此无需为id费心
$(文档).ready(函数(){
$('.src')。在('input',function()上{
设$src=$(此);
$src.next().val($src.val());
});
});代码>
Src 1:
目的地1:
Src 2:
Dest 2:
只需像这样触发:
HTML:
您好@Wilf我注意到您删除了接受的答案-执行上述内容是否有问题?有什么我能帮忙的吗?对不起,我用你的答案在这里运行代码片段并再次测试。它不起作用。你能详细说明什么不起作用吗?如果没有看到你的坏代码,我真的无法帮你调试它。你能检查一下控制台上的错误并告诉我它们是什么吗
Src 1: <input type='text' class='src' data-dest="dest1">
Dest 1: <input type='text' id='dest1' readonly>
<br />
Src 2: <input type='text' class='src' data-dest="dest2">
Dest 2: <input type='text' id='dest2' readonly>
$(document).ready(function() {
$('.src').on('input', function() {
$($(this).attr('#' + 'data-dest')).val($(this).val());
});
});