我有两个输入A和B,在输入中我设置了onchange=$("#B").val($(this).val())
我已设置$(B).change(function(){aler('ok');})
但没有任何反应..应如何制作?
答案 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>