2012-08-31 52 views
1

我想插入一个特定的字符,说每次在另一个文本框中按下一个键时的字母“H”。每个按键插入一个字符到一个隐藏的文本输入

例如,

文本框1:输入您的姓名
文本框2:HHHHHHHHHHHHHH

我已经试过

$('#cartText16132').keyup(function() { 
    $('input#test').val('1'); 
}); 

但是,只有一个插入 “1”

希望是有道理的。

+0

http://jsfiddle.net/gcwG2/ – anderssonola

回答

2

下面的代码应该做你想要什么:

$("#cartText16132").keyup(function() { 
    $("#test").val(this.value.replace(/./g, "H")); 
});​ 

DEMO:http://jsfiddle.net/JhpHL/


没有正则表达式另一种解决方案:

$("#cartText16132").keyup(function() { 
    $("#test").val(Array(this.value.length + 1).join("H")); 
});​ 

DEMO:http://jsfiddle.net/JhpHL/1/

0
$('#cartText16132').keyup(function(e) { 
    $('input#test').val('H'); 
}); 
0

试着做这样的:

$('#cartText16132').keyup(function() { 
    var input = $('input#test'); 
    input.val(input.val() + "H"); 
}); 

的问题是,您每次更换价值,你不追加它。所以你用1代替'1',结果为'1'而不是'11'。

+1

尝试使用'backspace',或'alt'或'ctrl',任何非符号密钥。 – VisioN

+0

这就是他要求的权利?不要与其他文本框中的文本具有相同的长度,但每次在另一个文本框中按下某个键时添加一个H. –

0

您正在用每个键盘覆盖该值。您需要追加:

$('input#test')。val($('input#test')。val()+'1');