然而另一个“对象不支持这个属性或方法” - jQuery

时间:2010-11-14 07:58:24

标签: javascript jquery

我刚刚将我的应用程序转换为在MVC3和Razor视图引擎上运行,现在我收到了一个JavaScript错误。问题是,在JavaScript方面没有任何改变......它之前有效。

这是代码

<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
    var json_region = [{"value":365,"label":"Calgary"},{"value":368,"label":"Canmore"},{"value":393,"label":"Edmonton"}]
    $(function() {
        $('#UserRegion').autocomplete({
            source: json_region,
            selectFirst: true,
            select: function( event, ui ) {
                $('#RegionID').val( ui.item.value );
                $('#UserRegion').val( ui.item.label );
                return false;
            }
        });
    });
</script>

<script type="text/javascript" src="/Extras/urbannow.js/1"></script>
<script src="/Assets/Scripts/jquery.ui.autocomplete.selectfirst.js" type="text/javascript"></script>
<script src="/Assets/Scripts/wmd.js" type="text/javascript"></script>
<script src="/Assets/Scripts/showdown.js" type="text/javascript"></script>
<script src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<script src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
<script src="/Assets/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>

这是错误的

$('#UserRegion').autocomplete({

控制台说

  

SCRIPT438:Object不支持此属性或方法

我只是想不出这个。

4 个答案:

答案 0 :(得分:18)

你包括jQuery两次。

答案 1 :(得分:3)

您在包含基本jQuery库(不包括自动完成插件)后立即调用.autocomplete。修复脚本引用的顺序,并确保在尝试使用之前包含自动完成插件。

答案 2 :(得分:1)

在自定义脚本调用

之前加载它

<script src="/Assets/Scripts/jquery.ui.autocomplete.selectfirst.js" type="text/javascript"></script>

或者最好的自定义代码应该在您的所有JavaScript文件之后。 所以,你的代码应该像这样

 <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="/Extras/urbannow.js/1"></script>
    <script src="/Assets/Scripts/jquery.ui.autocomplete.selectfirst.js" type="text/javascript"></script>
    <script src="/Assets/Scripts/wmd.js" type="text/javascript"></script>
    <script src="/Assets/Scripts/showdown.js" type="text/javascript"></script>
    <script src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
    <script src="/Assets/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>

  <script type="text/javascript">
    var json_region = [{"value":365,"label":"Calgary"},{"value":368,"label":"Canmore"},{"value":393,"label":"Edmonton"}];
    $(function() {
        $('#UserRegion').autocomplete({
            source: json_region,
            selectFirst: true,
            select: function( event, ui ) {
                $('#RegionID').val( ui.item.value );
                $('#UserRegion').val( ui.item.label );
                return false;
            }
        });
    });
</script>

答案 3 :(得分:0)

重复jQuery声明,选中查看页面源