onChange函数未定义

这必须简单。 我搜索了互联网,只发现语法错误是导致此问题的原因,但我找不到语法错误。

这是javascript:

  $(document).ready(function(){ function hi(){ alert('hi'); } hi(); });  

和HTML:

  

在页面加载时,函数hi按预期调用,但我的onChange事件导致Firebug错误,说明函数未定义。 我真的很难过。 我错了’嗨’吗?

hi函数仅在ready事件处理程序的范围内。 将它移到事件处理程序之外,或处理其中的绑定(并从标记中删除内联事件处理程序属性):

 $(document).ready(function(){ function hi(){ alert('hi'); } $("#cep").on("change", hi); }); 

hi函数仅在ready块中定义。 在外面,它不再存在。

您不需要在.ready()包装函数定义,因此只需将其删除即可。 或者,定义这样的函数:

 window.hi = function() {...} 
    

只有在控件模糊时才会触发onchange 。 试试onkeypress

 $("#cep").on("change", function() { alert(1); }); 

要么

  

使用以下事件而不是onchange

 - onkeyup(event) - onkeydown(event) - onkeypress(event) 

在您的代码块中:

  

hi不是全球function。 您只能在function(){...}的范围内访问它,而不能从外部访问它。

由于您使用的是jQuery,因此可以更改将函数绑定到onChange事件的方式。 您可以编写:而不是从html标记中调用它: