检测来自javascript的更改

时间:2013-12-08 08:32:57

标签: javascript html

我有一个文本输入,其内容通过javascript更改。但是,onchange事件似乎并未捕获此更改。有没有办法检测输入何时通过Javascript更改?

7 个答案:

答案 0 :(得分:3)

使用JQuery以便您可以

$('element').on('input', function () {
   alert(this.value);
});

否则,仅使用JavaScript就可以使用onkeyup="alert(this.value);"

如果是datePicker,那么您可能可以使用其onSelect事件。

此答案为您在评论Date Range Picker how to fire an event on entering a date

中指定的插件添加了一个事件

============================引用开始================= ===============

function myCallBack(start, end) {
    $('#dateRange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
    alert('hello world'); //etc, your code here
}
// attach daterangepicker plugin
$('#dateRange').daterangepicker(options, myCallback);

你甚至可以定义自己的自定义事件处理程序并在回调中触发它。

示例

$(document).on('myCustomEvent', function () {
    // your code here
});

$('#dateRange').daterangepicker({
// .. //
function(start, end) {
    $('#dateRange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
    $(document).trigger('myCustomEvent');
});

============================引用结束================= ===============

答案 1 :(得分:0)

如果要在键入时跟踪更改,请使用onkeydown。如果您需要使用鼠标捕获粘贴操作,请使用onpaste(IE,FF3)和oninput(FF,Opera,Chrome,Safari1)。

答案 2 :(得分:0)

如果您使用的是HTML5,则可以使用input事件

document.getElementById("textinput").addEventListener("input", function(e){});

答案 3 :(得分:0)

更改输入值后,您可以在输入上调用onchange()来触发onchange事件

document.getElementById('myInput').onchange();

答案 4 :(得分:0)

在评论中转发我们的对话。

以下是您的DateRangePicker插件On Github

的链接

有一个段落可以在回调中使用....

从链接引用

  

构造函数还采用可选的选项对象和回调   功能。只要选定的日期范围,就会调用该函数   已被用户更改,并传递开始和结束日期   (时刻日期对象)作为参数。

$('input[name="daterange"]').daterangepicker(
  { 
    format: 'YYYY-MM-DD',
    startDate: '2013-01-01',
    endDate: '2013-12-31'
  },
  function(start, end) {
    alert('A date range was chosen: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD'));
  }
);

答案 5 :(得分:0)

实际上,您可以捕获正在发生的更改。

试试这个:

var something = ""; // create variable..
$('input').keyup(function () { // on a key up..
   something = $(this).val(); // update the variable..
} 

否则,您只需使用.replace(value, '')删除之前的单词,然后在变量中写入新写入的单词。

要检测更改,您需要保存初始状态,然后将其与最终状态进行匹配。要保存初始状态,您需要在页面加载时创建变量。之后,您可以比较两者并删除初始单词并继续。

答案 6 :(得分:0)

要回答这个问题...使用javascript(因为jquery等不是javascript,因此它是用javascript编程的)

Object.addEventListener("change",yourFunc );

其中Object是您要侦听的对象,这可以是文档,元素,具体取决于要检测的对象。