Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery更改事件不会在我的浏览器中触发(在JSFIDLE中为does)_Javascript_Jquery - Fatal编程技术网

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)。