如何修复显示自动2位数的最后一个电话号码到第二个文本字段?

时间:2015-07-26 09:27:46

标签: javascript jquery ajax

我已合并来自http://jsbin.com/oleto5/5/edit?html,js,outputhttp://jsfiddle.net/AEMLoviji/tABDr/

的此脚本

但代码中存在一些问题:$('#numbers').val($('#tt').val()+String.fromCharCode(event.keyCode));

如果我删除+String.fromCharCode(event.keyCode));并将脚本替换为.substr(-2));则无效。

当我删除数字时,如果我使用+String.fromCharCode(event.keyCode));并不完美。

示例:



<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>berkelilingkesemua.info</title>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" class="jsbin" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js" type="text/javascript" class="jsbin"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.js" type="text/javascript" class="jsbin"></script>
</head>

<body>

<script type="text/javascript">
	$(function(){
	$('#txt').keydown(function(){
	setTimeout(function() {
	$('#output').text($('#txt').val().substr(-2));
	}, 50);
});
});
</script>
<input id="txt" type="text" />
<div id="output"></div>

<hr>
Second script is combined by me from first script becomes like below.
<hr />

<script type="text/javascript">
$(document).ready(function() {
	$("#tt").keydown(function (event) {
	setTimeout(function() {
	}, 50);
	{
	$('#numbers').val($('#tt').val()+String.fromCharCode(event.keyCode));
	}
});
});
</script>
<input type="text" id="tt" />
<input type="text" id="numbers" />

</body>
</html>
&#13;
&#13;
&#13;

是否有关于此脚本的解决方案?。

2 个答案:

答案 0 :(得分:0)

我认为你是在追求以下之一。

$('#output').text( $(this).val().slice(0, -2) );

$('#output').text( $(this).val().slice(-2) );

使用.slice()的演示:

$(function() {
    $('#txt').keyup(function() {
        var $this = $(this);
        $('#output1').val( $this.val().slice(0, -2) ); //Grab everything but the last 2 characters.
        $('#output2').val( $this.val().slice(-2) ); //Grab the last 2 characters.
    })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="txt" />
<br/><br/>
<input type="text" id="output1"></span><br/>
<input type="text" id="output2"></span>

答案 1 :(得分:0)

让我们分析一下: 1.您正在使用HTML5,那么为什么不使用&#34;输入&#34;事件?它比#34; keyup&#34;更可靠。 2.为了加快速度,总是尝试将DOM元素存储在变量中,这样您每次都不必浏览所有DOM树,只需按一个按钮 3.使用slice()方法获取正确的字符串。

&#13;
&#13;
var source = $("#tt"),
    target = $("#numbers");
source.on('input', function() {
  target.val(source.val().slice(-2));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="tt" />
<input type="text" id="numbers" />
&#13;
&#13;
&#13;