我有一个文本输入,我得到输入并使用它。我有:
$(myinput).on('input', function() {
$(somediv).append($(this).val());
});
我想继续使用append函数,但问题是在每个输入上,整个输入val()被追加。因此,当我点击'时,它会添加' a'但是当我点击' b'在a之后,它附加了' ab'不是' b'
有没有办法只在不清除输入框的情况下获取最近的.input事件的输入?
答案 0 :(得分:2)
您可以使用.text()
代替.append()
。这将设置整个文本,而不仅仅是附加它。
$(somediv).text($(this).val());
或者您可以使用字符串的最后一个字符。
$(somediv).text($(this).val().slice(-1));
请参阅:how to get the last character of a string?
答案 1 :(得分:1)
我假设您要使用append
因为somediv
中有其他内容您不想丢失。如果是这种情况,您可以创建一个子元素来接收文本,只需将其附加一次,然后在input
字段更改时更改其内容:
var receiver = $('span');
$(somediv).append(receiver);
$(myinput).on('input', function() {
receiver.html($(this).val());
});
答案 2 :(得分:0)
$("#myinput").on('input', function() {
$("#somewhere").val("");
setTimout(function() {
$("#somewhere").append($(this).val());
},10);
});
或
$("#myinput").focusout(function() {
$("#somewhere").val("");
setTimout(function() {
$("#somewhere").append($(this).val());
},10);
});
超时是为了做事而不重叠。 你也可以尝试没有timoeout
答案 3 :(得分:0)
您还可以绑定到keyup
事件:
$(document).on('keyup', '#inputID', function(e){
var key = String.fromCharCode(e.which);
$('div').append(key);
});