继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

面试问题第二弹-文本内容的实时同步

C阳0
关注TA
已关注
手记 8
粉丝 31
获赞 270

面试的时候被问到这样一个问题,两个文本框,怎样实现第二个文本框的内容和第一个文本框的内容实时同步。
我的第一反应是,只要取到input1的value值,使input2的value与其相等就可以了。但面试官又补充了需要实时同步,那么问题来了,如何实时同步。
首先,我想到的是Angular框架,正好可以完美的解决这个问题,但是问题好像并没有那么复杂,而且考题的重点是JS,那么需要用JS来接触这个问题。
然后,我想到了用定时器setInterval进行刷新,

<script>
var a=document.getElementById("input1"),
      b=document.getElementById("input2");
setInterval(function(){
b.value=a.value},50)
</script>

这个方法可行,但是用定时器消耗内存,显然大题小用。
那么,正确的方法是什么呢?
input属性有onchange属性,

<input id="input1" onchange="document.getElementById("input2").value=this.value" />;
<input id="input2" onchange="document.getElementById("input1").value=this.value" />;

但这样仅能实现input1失去聚焦的时候,input2的值才随着发生变化,
所以我们有用到onkeyup属性:

<input id="input1" onkeyup="document.getElementById("input2").value=this.value" />;
<input id="input2" onkeyup="document.getElementById("input1").value=this.value" />;

这样这个问题被完美解决

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP