javascript - 如何在每次按键时做某事,而不仅仅是事件的第一次

标签 javascript jquery forms validation

我有一个我认为一定是非常简单的 jQuery 问题。

当用户在我正在使用的站点上创建帐户时,他们创建的帐户名称会添加到站点地址之前,这是他们将来用来访问其帐户的地址。

例如http://useraccount.thewebsite.com

当用户在注册表单的“创建帐户名称”字段中键入帐户名称时,我想创建一个工具提示来解释这是什么并向他们显示地址的外观。

到目前为止,这是我的代码:

$('input.account-name').keypress(function(){
  $("span.account-name-illustration").replaceWith($(this).val());
});

'input.account-name'为输入栏。

'span.account-name-illustration'是这样的:

<p>Your account address will be https://<span class="account-name-illustration">something</span>.thewebsite.com.</p>

这适用于第一次按键,但之后没有。

所以我在稍微摇晃之后,我发现了这个:

http://docs.jquery.com/Events/keypress

这在某种程度上是有效的。除了它只是不断地不断添加每个按键,忽略删除后输入中的实际内容或将光标放在现有字符之间等。

所以现在我想知道,我真的想记录每个按键...还是有办法在每次按键后获取输入的值?

非常感谢帮助。

最佳答案

由于您只是将 span 替换为文本,因此 span.account-name-illustration 选择器将不会在后续调用中找到任何内容。

您可以通过使用 text 而不是 replaceWith 来保留 span 来解决此问题:

$("span.account-name-illustration").text($(this).val());

关于javascript - 如何在每次按键时做某事,而不仅仅是事件的第一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463510/

相关文章:

javascript - 边框和图像之间的空间

jquery - Rails Ajax 调用另一个 Controller

forms - extjs文件上传进度

javascript - 如何替换html文件中多个标签的内容? [ Node .js]

javascript - 通过添加父名称来创建元素的对象链

javascript - 实时更改元素id

javascript - 如何在同一页面浏览和显示图片?

php - JQuery 表单保持静态 - 页面不会动态验证

javascript - DataTables - 通过点击事件获取当前行的数据库ID

javascript - "Splitting"长字