当另一个输入改变时,触发器上的触发器改变

时间:2012-07-11 13:05:11

标签: jquery

我有两个输入A和B,在输入中我设置了onchange=$("#B").val($(this).val())

我已设置$(B).change(function(){aler('ok');})但没有任何反应..应如何制作?

2 个答案:

答案 0 :(得分:1)

两个错别字:

$('#B').change(function(){alert('ok');});

使用Chrome Developer Tools或Firebug(类型F12)查看错误。

您可能希望在控制台中键入一些测试,例如

$('#B')

了解你在做什么。

答案 1 :(得分:1)

在没有args的情况下调用B上的change()来触发B上的事件。

$("#A").change(function(){
   $("#B").val($(this).val()).change();   // call change with args to trigger the change   event on B
});

$("#B").change(function() { alert("OK"); });

编辑:您可以更改$ .fn.val的行为以触发更改事件。但我真的不知道这种改变是否会导致不良行为。

<script>
    (function () {
        var originalVal = $.fn.val;
        $.fn.val = function () {
            if (!arguments.length)
                return originalVal.call(this);

            var args = Array.prototype.slice.apply(arguments);

            return this.each(function () {
                var self = $(this);
                originalVal.apply(self, args);
                self.change();
            });
        };
    })();
</script>