onChange函数未定义

Use*_*407 15 javascript jquery onchange undefined

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

这是javascript:

<script type="text/javascript" src="http://localhost/acrilart/javascript/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        function hi(){
            alert('hi');
        }
        hi();
    });
</script>
Run Code Online (Sandbox Code Playgroud)

和HTML:

<input type="text" name="cep" value="" id="cep" class="required cep field"
       onChange="hi()" />
Run Code Online (Sandbox Code Playgroud)

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

Jam*_*ice 20

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

$(document).ready(function(){
    function hi(){
        alert('hi');
    }
    $("#cep").on("change", hi);
});
Run Code Online (Sandbox Code Playgroud)


Nie*_*sol 5

hi功能仅在ready块中定义。在外面,它不存在了。

您无需在中包装函数定义.ready(),因此只需删除它即可。或者,如下定义函数:

window.hi = function() {...}
Run Code Online (Sandbox Code Playgroud)