0

我有两个输入 A nad B 和输入 ai 已设置onchange=$("#B").val($(this).val())

我已经设置$(B).change(function(){aler('ok');})但什么也没发生..这应该怎么做?

4

2 回答 2

1

两个错别字:

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

使用Chrome 开发者工具或 Firebug(类型 F12)查看错误。

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

$('#B')

看看你在做什么。

于 2012-07-11T13:07:45.150 回答
1

在不带参数的情况下调用 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>
于 2012-07-11T13:09:29.187 回答