Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.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 我可以跟踪一次输入字段的文本更改,而不是每次输入吗?_Javascript_Jquery_Html_Dom - Fatal编程技术网

Javascript 我可以跟踪一次输入字段的文本更改,而不是每次输入吗?

Javascript 我可以跟踪一次输入字段的文本更改,而不是每次输入吗?,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我有一个基本的文本输入字段,出于数据分析的目的,我希望跟踪用户每次编辑该字段中的文本时的情况。到目前为止,我有以下代码: var input = document.querySelector("#inputId"); input.oninput = function (e) { alert("changed"); } 问题是,每次用户删除或添加字符时,都会触发此命令,而我只想知道一次他们在更改文本字段中的文本。有没有

我有一个基本的文本输入字段,出于数据分析的目的,我希望跟踪用户每次编辑该字段中的文本时的情况。到目前为止,我有以下代码:

 var input = document.querySelector("#inputId");
 input.oninput = function (e) {
                   alert("changed"); 
                 }

问题是,每次用户删除或添加字符时,都会触发此命令,而我只想知道一次他们在更改文本字段中的文本。有没有办法做到这一点?我是jQuery和JavaScript新手,所以任何方向都将非常感谢,谢谢

听起来您想绑定到onchange事件:当用户最终确定输入值时,例如当他/她从字段中模糊时,会触发onchange事件:

var输入=document.querySelectorinputId; input.addEventListener'change',e=>console.log'changed',e.target.value;
听起来您想绑定到onchange事件:当用户最终确定输入值时,例如,当他/她从字段中模糊时,会触发onchange事件:

var输入=document.querySelectorinputId; input.addEventListener'change',e=>console.log'changed',e.target.value;
只需在函数调用时删除它

让输入=document.querySelectorinputId; input.oninput=函数e{ 警觉改变; input.oninput=未定义; }
只需在函数调用时删除它

让输入=document.querySelectorinputId; input.oninput=函数e{ 警觉改变; input.oninput=未定义; }
如果只希望事件处理程序在每个元素中触发一次,则需要在事件处理程序第一次运行时删除它:

var输入=document.querySelectorinputId; addEventListener'input',yourFunc; 函数yourFunce{ 警觉改变; 这个.removeEventListener'input',yourFunc; } 注意使用addEventListener和removeEventListener代替过时的oninput属性

正如您在问题中标记了jQuery一样,您也可以通过以下方式实现它:


如果只希望事件处理程序在每个元素中触发一次,则需要在事件处理程序第一次运行时删除它:

var输入=document.querySelectorinputId; addEventListener'input',yourFunc; 函数yourFunce{ 警觉改变; 这个.removeEventListener'input',yourFunc; } 注意使用addEventListener和removeEventListener代替过时的oninput属性

正如您在问题中标记了jQuery一样,您也可以通过以下方式实现它:

您可以尝试使用选项一次:true:

once:一个布尔值,指示在添加侦听器后最多应调用一次。如果为true,则在调用时将自动删除侦听器

请注意:Internet Explorer尚未支持此参数特征

var输入=document.querySelectorinputId; input.addEventListener'input',=>{ 警觉改变; }, { 一次:对 }; 您可以尝试使用选项一次:true:

once:一个布尔值,指示在添加侦听器后最多应调用一次。如果为true,则在调用时将自动删除侦听器

请注意:Internet Explorer尚未支持此参数特征

var输入=document.querySelectorinputId; input.addEventListener'input',=>{ 警觉改变; }, { 一次:对 };
非常好,只是要注意选项参数在IE中不起作用非常好,只是要注意选项参数在IE中不起作用
$('#inputId').one('input', function() {
  alert('changed');
});