添加并运行谷歌后,Javascript抛出错误放置自动完成代码

时间:2015-01-23 18:18:20

标签: javascript c# asp.net-mvc asp.net-mvc-4

我将下面的代码添加到我的MVC应用程序中,虽然google在我的文本字段中放置了自动完成功能,但是当使用或呈现其中一个javascript文件时,某些JavaScript文件会抛出错误。 这是visual studio中的错误。当我点击主页面上的提交按钮时会发生错误。

  

第626行的未处理异常,eval代码中的第256列

     

0x800a138f - JavaScript运行时错误:无法获取未定义或空引用的属性“值”

这是我添加到_Layout.cshtml

中的head标记的代码
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&amp;sensor=false&amp;libraries=places"></script>

然后我在_Layout.cshtml

的正文部分末尾添加了以下代码
<script type="text/javascript">
    var input = document.getElementById('location');
    var autocomplete = new google.maps.places.Autocomplete(input);
</script>

最后这里是index.cshtml中带有文本字段的表单,它使用了地点自动完成。

@using (Html.BeginForm("Results", "Home", FormMethod.Get))
{
    <p>
        <input type="text" name="location" id="location" placeholder="Search For A Studio" />
    </p>
    <p>
        <input class="btn btn-primary btn-lg" value='Submit' type="submit"/>
    </p>
}

当下面的行在调试器中被命中时,会抛出错误。

@RenderSection("scripts", required: false)

我阅读了其他帖子并显示了相同的错误消息,我尝试了

var input = document.getElementById('<%=location.ClientID%>');

但它仍然是错误。

已更新! - 我尝试将输入的硬编码值添加到下面,现在我在页面首次加载时以及按下提交时都收到此错误消息。

  

0x800a01b6 - JavaScript运行时错误:对象不支持属性或方法'getAttribute'

<script type="text/javascript">

        var input = "brighton";
        var autocomplete = new google.maps.places.Autocomplete(input);
        //debugger;
    </script>

1 个答案:

答案 0 :(得分:0)

这一行

@RenderSection("scripts", required: false)

表示在_Layout母版页内呈现的视图上加载脚本时发生错误。

在您的视图中搜索:

@section Scripts {}

默认情况下,Visual Studio会将jqueryval添加到模板生成的CRUD视图中,因此,如果您正在使用模板,那么您的页面可能会在结尾处显示

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

尝试删除视图上的jqueryval加载。如果需要jquery验证,请将其加载到_Layout