javascript - 为什么我在添加文本时没有收到警报?
问题描述
我知道我可以通过在按钮单击侦听器主体中添加警报功能来实现这一点,但我不想那样做。我希望每当此文本框收到文本时,我都会收到警报。
这是代码
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.1.1.js"></script>
<title>Page Title</title>
</head>
<body>
<form>
<input id="check" type="text" name="check" >
</form>
<button id="test">ClickMe</button>
<script>
$(document).ready(function() {
$('#test').click(function () {
$('#check').val('Example') ;
})
$('#check').on('input propertychange paste change', function () {
alert("text added");
})
})
</script>
</body>
</html>
解决方案
用Javascript设置值不会触发事件,所以需要手动触发事件。此外,您实际上只需要“输入”事件。其他的无关紧要或多余。
$('#check').trigger('input');
或者您可以链接它,因为您使用的是 jQuery:
$('#check').val('N001-01-1356/2017').trigger('input');
例子:
$(document).ready(function() {
$('#test').click(function() {
$('#check').val('N001-01-1356/2017').trigger('input');
})
$('#check').on('input', function() {
alert("text added");
})
})
<script src="https://code.jquery.com/jquery-3.1.1.js"></script>
<form>
<input id="check" type="text" name="check">
</form>
<button id="test">ClickMe</button>
推荐阅读
- bash - GitBash 启动时,如何检测和捕获事件,何时加载 .gitconfig 文件并设置 git 全局凭据
- amazon-web-services - 如何从一个代码库部署 Lambda?
- tabulator - 在同一个 Tabulator 表上使用 Ajax 过滤和非 Ajax 过滤?
- java - 使用服务在后台通过多个按钮播放多个声音
- ios - 属性未在 super.init 调用中使用 MVVM 和便利 init 初始化
- prolog - 在 Prolog 中使用“或”
- python-3.x - 我用 Python 编写了重命名目录中的文件的代码,但出现错误:(有什么建议吗?
- lua - Lua:如何使 os.rename 和 os.remove 使用包含 unicode 字符的文件名?
- android-studio - Flutter:无法在 Android Studio 中创建 Flutter 项目或运行 Flutter 项目。(颤振工作正常)
- javascript - Java-script:去掉多余的小数位