Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将一个字段的文本自动复制到另一个字段中_Javascript_Jquery_Html - Fatal编程技术网

Javascript 将一个字段的文本自动复制到另一个字段中

Javascript 将一个字段的文本自动复制到另一个字段中,javascript,jquery,html,Javascript,Jquery,Html,我需要复制在某个字段中输入的文本(无论是键入的、粘贴的还是从浏览器自动填充中输入的),并同时或在用户更改到另一个字段时将其粘贴到另一个字段中 如果用户删除字段_1中的文本,它也应在字段_2中自动删除 我试过这个,但不起作用: <script type="text/javascript"> $(document).ready(function () { function onchange() { var box1 = document.getElementById('field_1'

我需要复制在某个字段中输入的文本(无论是键入的、粘贴的还是从浏览器自动填充中输入的),并同时或在用户更改到另一个字段时将其粘贴到另一个字段中

如果用户删除字段_1中的文本,它也应在字段_2中自动删除

我试过这个,但不起作用:

<script type="text/javascript">
$(document).ready(function () {

function onchange() {
var box1 = document.getElementById('field_1');
var box2 = document.getElementById('field_2');
box2.value = box1.value;
}
});
</script>

$(文档).ready(函数(){
函数onchange(){
var box1=document.getElementById('field_1');
var box2=document.getElementById('field_2');
box2.value=box1.value;
}
});
有什么想法吗?

在第一个元素上调用
onchange()
方法
onblur

<input type="text" id="field_1" onblur="onchange()"/>

你就快到了。。。该函数是正确的,您只需将其分配给输入的
更改
事件:

<script type="text/javascript">
    $(document).ready(function () {

        function onchange() {
            //Since you have JQuery, why aren't you using it?
            var box1 = $('#field_1');
            var box2 = $('#field_2');
            box2.val(box1.val());
        }
        $('#field_1').on('change', onchange);
    });

$(文档).ready(函数(){
函数onchange(){
//既然您有JQuery,为什么不使用它呢?
变量框1=$(“#字段_1”);
变量框2=$(“#字段_2”);
box2.val(box1.val());
}
$(“#字段_1”)。on('change',onchange);
});

尝试使用keyup事件

 <input type="text" id="box_1"/>
<input type="text" id="box_2"/>
$('#box_1').keyup(function(){

$('#box_2').val($(this).val());

})

$('#box_1').keyup(函数(){
$('#box_2').val($(this.val());
})
尝试以下方法:

$(document).ready(function () {
    $('#field_1').on('change', function (e) {
       $('#field_2').val($('#field_1').val());
    });
});

这里有一个提示:

您需要将第一个输入绑定到事件。类似这样的方法会奏效:

$(文档).ready(函数(){
$(“#a”).change(函数(){
var a=$(“#a”).val();
$(“b”).val(a);
});
});

$(文档).ready(函数(){
$('.textBox1')。在('change',function()上{
$('.textBox2').val($(this.val());
}); 
});

如果您使用的是jQuery,它非常简单-您只需在正确的事件上注册正确的函数:)

代码如下:

<input id="foo" />
<input id="bar" />

$(function(){
    var $foo = $('#foo');
    var $bar = $('#bar');
    function onChange() {
        $bar.val($foo.val());
    };
    $('#foo')
        .change(onChange)
        .keyup(onChange);
});

$(函数(){
变量$foo=$(“#foo”);
var$bar=$(“#bar”);
函数onChange(){
$bar.val($foo.val());
};
$(“#foo”)
.change(onChange)
.keyup(onChange);
});

JSFiddle

如果希望第二个字段的值与第一个字段的值在同一时间更新,可以通过超时处理

每次按下一个键,它将在执行的下一个堆栈上执行
checkValue
函数。因此,调用此函数时,
DOM
中的
字段1
的值将已经更新

var$field1=$(“#field_1”);
变量$field2=$(“#field_2”);
$field1.on(“向下键”,函数(){
设置超时(检查值,0);
});
var v2=$field2.val();
var checkValue=函数(){
var v1=$field1.val();
如果(v1!=v2){
$field2.val(v1);
v2=v1;
}
};



您是否将
onchange
事件绑定到了任何东西?额外的好处是您同时使用了
change
keyup
@DanielPanic您能建议如何优化它吗?