更改事件是否已准备就绪?

时间:2014-05-22 23:30:31

标签: jquery onchange document-ready

我拥有的:

我有两个文本框。页面加载时,第一个文本框的值将应用于第二个文本框。

我需要什么:

我需要在页面加载时触发更改事件。

我的代码:

HTML:

a: <input type="text" id="a" value="x" />
b: <input type="text" id="b" value="y" />

JQuery的:

// Apply value of #a to #b and fire change event...
$('#b').val($('#a').val()).change();

// Listen for the change and alert...
$('#b').on('change', function() {
    alert("Change event fired on load.");
});

的jsfiddle:

为方便起见:http://jsfiddle.net/clarusdignus/rHYLM/

我的问题:

更改事件未触发。

2 个答案:

答案 0 :(得分:1)

您应触发更改事件。所以......

$('#b').val($('#a').val()).trigger('change');

此外,您需要告诉JavaScript在文档加载(准备好)之后执行这些行。这可以在你的代码中包装:

  

$(function(){/ *你的代码* /});

这是一个简化版本:

  

$(document).ready(function(){...});

答案 1 :(得分:1)

事件处理程序在代码

触发事件后附加

首先应该是

  // Listen for the change and alert...
$('#b').on('change', function() {
    alert("Change event fired on load.");
});

// Apply value of #a to #b and fire change event...
$('#b').val($('#a').val()).change();

第二个应该是

// Listen for the change and alert...
$('#b').on('change', function() {
    alert("Change event fired on load.");
});

// Apply value of #a to #b and fire change event...
$('#b').val($('#a').val()).trigger('change');