如何跟踪输入是否被更改(jQuery)?

时间:2012-01-17 15:49:44

标签: jquery input

我有以下代码:

jQuery('#hexVal').change(function() {
    var hexvarval = jQuery('#hexVal').val();
    jQuery('#thumbnail_hover_color').val(hexvarval);
});

基本上,我想每次更改#thumbnail_hover_color INPUT时更改#hexVal INPUT的值。当我手动操作时它可以工作。当其他jQuery脚本将文本放到#hexVal时,它不会更新#thumbnail_hover_color

问题:每次在其他INPUT字段中更改(无论如何)时,如何触发一个INPUT字段的“更改值”?我希望他们总是拥有相同的价值。

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码触发change #hexVal事件。无论您在代码中设置#hexVal的值,都会触发此事件。

jQuery('#hexVal').change();

答案 1 :(得分:1)

如果您以编程方式设置/更改输入的值,则还必须以编程方式触发更改事件(或调用与更改事件处理程序相同的代码)。所以,我想你有两个选择:

jQuery('#hexVal').change(function() {
    var hexvarval = jQuery('#hexVal').val();
    jQuery('#thumbnail_hover_color').val(hexvarval);
});

jQuery('#hexVal').val('some value'); // changing the value
jQuery('#hexVal').trigger('change'); // triggering the change event handler

function changeHexVal() {
    var hexvarval = jQuery('#hexVal').val();
    jQuery('#thumbnail_hover_color').val(hexvarval);
}

jQuery('#hexVal').change(changeHexVal);

jQuery('#hexVal').val('some value'); // changing the value
changeHexVal(); // calling the 'change' event handler function