输入时只获得新的输入值

时间:2015-03-06 15:55:36

标签: javascript jquery html

我有一个文本输入,我得到输入并使用它。我有:

$(myinput).on('input', function() {
 $(somediv).append($(this).val());
});

我想继续使用append函数,但问题是在每个输入上,整个输入val()被追加。因此,当我点击'时,它会添加' a'但是当我点击' b'在a之后,它附加了' ab'不是' b'

有没有办法只在不清除输入框的情况下获取最近的.input事件的输入?

4 个答案:

答案 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);
});

jsFiddle Demo