Javascript jQuery更改事件不会在我的浏览器中触发(在JSFIDLE中为does)
我希望每次更改文本框时,都能执行一个函数。 为此,我有以下代码:Javascript jQuery更改事件不会在我的浏览器中触发(在JSFIDLE中为does),javascript,jquery,Javascript,Jquery,我希望每次更改文本框时,都能执行一个函数。 为此,我有以下代码: var div=document.getElementById(“树”); var input=document.createElement('input'); input.id=123; input.type=“text”; div.appendChild(输入); $(“输入”).change(函数(){ 警报(“文本已更改”); }); 使用键控或输入事件代替更改 change事件仅在焦点丢失时触发 使用键控或输入事件代替
var div=document.getElementById(“树”);
var input=document.createElement('input');
input.id=123;
input.type=“text”;
div.appendChild(输入);
$(“输入”).change(函数(){
警报(“文本已更改”);
});代码>
使用键控
或输入
事件代替更改
change
事件仅在焦点丢失时触发 使用键控
或输入
事件代替更改
change
事件仅在焦点丢失时触发 请使用blur event来触发带有更改的文本框时的事件。如果这对你有帮助,请告诉我
var div=document.getElementById(“树”);
var input=document.createElement('input');
input.id=123;
input.type=“text”;
div.appendChild(输入);
$(“输入”)。在('blur',函数()上{
警报(“文本已更改”);
});代码>
请使用blur event在文本框中保留更改时触发事件。如果这对你有帮助,请告诉我
var div=document.getElementById(“树”);
var input=document.createElement('input');
input.id=123;
input.type=“text”;
div.appendChild(输入);
$(“输入”)。在('blur',函数()上{
警报(“文本已更改”);
});代码>
此代码在Google Chrome中运行良好:版本67.0.3396
<!-- index.html -->
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$( document ).ready(function() {
var div = document.getElementById("tree");
var input = document.createElement('input');
input.id = 123;
input.type= "text";
div.appendChild(input);
$("input").change(function() {
alert("The text has been changed.");
});
});
</script>
</head>
<body>
<div id="tree"></div>
</body>
</html>
$(文档).ready(函数(){
var div=document.getElementById(“树”);
var input=document.createElement('input');
input.id=123;
input.type=“text”;
div.appendChild(输入);
$(“输入”).change(函数(){
警报(“文本已更改”);
});
});
此代码在Google Chrome中运行良好:版本67.0.3396
<!-- index.html -->
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$( document ).ready(function() {
var div = document.getElementById("tree");
var input = document.createElement('input');
input.id = 123;
input.type= "text";
div.appendChild(input);
$("input").change(function() {
alert("The text has been changed.");
});
});
</script>
</head>
<body>
<div id="tree"></div>
</body>
</html>
$(文档).ready(函数(){
var div=document.getElementById(“树”);
var input=document.createElement('input');
input.id=123;
input.type=“text”;
div.appendChild(输入);
$(“输入”).change(函数(){
警报(“文本已更改”);
});
});
请尝试以下操作:--
请试试这个:--
这里有两个问题
- 第一:事件将不会激发。更改不处理动态创建的项。
请参阅
如果您的页面正在动态创建元素,那么您会将事件绑定到已存在的父级
- 第二:改变方法并不是你真正想要的。您可能希望获取输入事件,请参阅更多
您需要的代码如下所示。其中第一个参数是事件名称,而第二个参数是
子项css选择器
$("#tree").on("input", "input", funtion(){
alert("The text has been changed.");
});
您可以在此处了解有关活动委派的更多信息:
此外,如果您在代码中指定了一个值,您可能希望触发输入事件
$("yourCssSelector").trigger("input");
它将触发事件输入2此处的问题
- 第一:事件将不会激发。更改不处理动态创建的项。
请参阅
如果您的页面正在动态创建元素,那么您会将事件绑定到已存在的父级
- 第二:改变方法并不是你真正想要的。您可能希望获取输入事件,请参阅更多
您需要的代码如下所示。其中第一个参数是事件名称,而第二个参数是
子项css选择器
$("#tree").on("input", "input", funtion(){
alert("The text has been changed.");
});
您可以在此处了解有关活动委派的更多信息:
此外,如果您在代码中指定了一个值,您可能希望触发输入事件
$("yourCssSelector").trigger("input");
它将触发事件输入检入控制台,如果您有任何错误或未动态创建元素,即单击按钮或通过ajax加载?尝试$('#tree')。在(“change”,“input”,function(){
@SudharshanNair)上,在console@Satpal我正在$(document).ready(function(){})内动态创建元素@Jondo789.您是否也可以签入其他浏览器。如果您有任何错误或未动态创建元素(即单击按钮或通过ajax加载),请将整个codeCheck粘贴到控制台中?请尝试$('#树')。打开(“更改”,“输入”,函数()){
@SudharshanNair我在console@Satpal我正在$(document).ready(function(){})内动态创建元素@Jondo789.你也可以签入其他浏览器吗?粘贴你的整个代码我只想在用户按enter键或离开文本框时触发它。不是每个按键都触发。哦,我错过了。无论如何,你也可以收听keydown
事件,并检查它是否为enter键(如果我没有错,请按keycode 13)。我只想在用户按下enter键或离开文本框时触发它。不是每次按键都触发。哦,我错过了。无论如何,你也可以收听keydown
事件,并检查它是否为enter键(如果我没有错的话,请键入代码13)。