猿问

如何检测文本框的内容已更改

如何检测文本框的内容已更改

当文本框的内容发生变化时,我希望检测到。我可以使用keyup方法,但是这也会检测不生成字母的击键,比如箭头键。我想出了两种使用keyup事件进行此操作的方法:

  1. 详细检查按下的键的ascii代码是否为字母\backspace\DELETE
  2. 使用闭包来记住文本框中的文本在键划之前的内容,并检查这是否已经改变。

两者看起来都有点麻烦。


呼如林
浏览 599回答 3
3回答

梵蒂冈之花

开始观察“输入”事件,而不是“更改”。jQuery('#some_text_box').on('input', function() {     // do your stuff});.很好,很干净,但可以进一步推广到:jQuery('#some_text_box').on('input propertychange paste', function() {     // do your stuff});

茅侃侃

在HTML/标准JavaScript中使用onchange事件。在jQuery中,这是变更()事件。例如:$('element').change(function() { // do something } );编辑在阅读了一些评论之后,关于:$(function() {     var content = $('#myContent').val();     $('#myContent').keyup(function() {          if ($('#myContent').val() != content) {             content = $('#myContent').val();             alert('Content has been changed');         }     });});
随时随地看视频慕课网APP
我要回答