手动触发更改事件不起作用

时间:2012-02-09 09:42:09

标签: jquery

通过$('input.filename').bind('change', function(){...})附加了一个带有更改事件的文本元素,并且有一个弹出按钮$('input.filename').trigger('onchange')|.change()触发此事件。

例外:如果通过“onchange”属性附加的更改事件触发工作!

附加代码:

input.change(function () {
        var dims = {
            'width': settings.previewWidth,
            'height': settings.previewHeight
        };
        updateImagePreview(input, preview, dims);
    });

触发代码如下所示:

var input = $("input[name='any_name']", window.opener.document);
    input
        .val("<?=$choice ?>")
        .trigger("onchange");
    window.close();

2 个答案:

答案 0 :(得分:2)

我完全不了解上下文,但要触发的正确事件是change而不是onchange和jquery。

input.trigger('change'); // not "onchange"

input.change();

答案 1 :(得分:0)

您只需执行change()或触发(&#34;更改&#34;):

var input = $("input[name='any_name']", window.opener.document);
    input
        .val("<?=$choice ?>")
        .trigger("change");

或更简单

var input = $("input[name='any_name']", window.opener.document);
    input
        .val("<?=$choice ?>")
        .change();

如果使用jQuery&lt; 1.4,则事件不会在Internet Explorer中冒出来