【问题标题】:Event change Js [duplicate]事件变化Js [重复]
【发布时间】:2016-12-25 20:50:33
【问题描述】:

当我的表格的一行被修改但 esta 不起作用时,我试图显示警报。这是我的代码。谢谢!

      $(document).ready(function(){
    $("#table").change(function(){
        alert("The text has been changed.");
    });
});
<table border="3" id='table' >
<thead>
<tr>Heading 1</tr>
<tr>Heading 2</tr>
</thead>
<tbody>
<tr>
<td contenteditable='true' id='bebe'>a</td>
<td contenteditable='true'>a</td>
</tr>
<tr>
<td contenteditable='true'>a</td>
<td contenteditable='true'>a</td>
</tr>
</tbody>
</table>

【问题讨论】:

  • 您需要在问题中指定正在发生的变化。是否正在添加/删除行? &lt;td&gt; 的内容有变化吗? &lt;table&gt; 不知道如何对更改事件做出反应。
  • 来自 jquery 文档:此 [change()] 事件仅限于 元素、
  • 数据表插件?
  • 这将检查文本更改jsFiddle,而不是每次按键,因为如果用户要输入多个字符,那将是一团糟

标签: javascript


【解决方案1】:

更新 这是您想要检查用户何时按下键盘上的键的时候

 $(document).ready(function(){ 
    var val1;
    var val;
        $("#table tbody tr td").on('keypress',function(){
                val = $(this).text();
            //alert(val);
        });
        $("#table tbody tr td").keyup(function(){
            val1 = $(this).text();
            if(val1!=val){
                    alert("text has changed");
            }
        });
    });

这是如果您只想在用户离开框时触发

$(document).ready(function(){ 
var val1;
var val;
    $("#table tbody tr td").on('focus',function(){
            val = $(this).text();
        //alert(val);
    });
    $("#table tbody tr td").focusout(function(){
        val1 = $(this).text();
        if(val1!=val){
                alert("text has changed");
        }
    });
});

【讨论】:

  • 谢谢!它对我有用:D
  • 很高兴听到这个消息 :) 标记为正确然后投票 :)
  • 投反对票的人能解释一下为什么吗?
  • 我不是那个否决它的人.. 但这个答案并不完整,因为它也应该检查文本的变化,这样警报就会随着 ever keypress 事件,想象一下如果用户想要输入几十个字母,那么每次按键都会执行该函数
  • 更新后的答案是固定的,只有在文本发生变化时才会触发
猜你喜欢
  • 2011-07-08
  • 2020-11-21
  • 2016-12-05
  • 2015-12-04
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
  • 2020-11-12
  • 2016-04-28
相关资源
最近更新 更多