javascript - 空 Web 应用程序在 Enter 上发回

标签 javascript c# asp.net

我创建了一个新的 Web 应用程序,并删除了所有服务器控件。然后我从此页面实现了谷歌地图和搜索框: https://developers.google.com/maps/documentation/javascript/examples/places-searchbox

实际上只是复制粘贴代码。

一切都像 Google 示例一样工作正常,但问题是,当我搜索并按 Enter 时,页面会发回,从而将页面重新加载为新页面。我无法找出触发重新加载页面的原因。

站点管理员:​​

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="Vegindex.SiteMaster" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
    <title></title>
    <link type="text/css" href="Styles/Site.css" rel="stylesheet" />
        rel="stylesheet">
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places"></script>
    <script type="text/javascript">

        google.maps.event.addDomListener(window, 'load', initialize);

    </script>
    <asp:ContentPlaceHolder ID="HeadContent" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Scripts>
            <asp:ScriptReference Path="~/JavaScript/map.js" />
        </Scripts>
    </asp:ScriptManager>
    <div class="page">
        <div class="main">
            <asp:ContentPlaceHolder ID="MainContent" runat="server" />
        </div>
    </div>
    </form>
</body>
</html>

Site.Master.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Vegindex
{
    public partial class SiteMaster : System.Web.UI.MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
    }
}

默认.aspx:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="Vegindex._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <div id="map" class="map"></div>
    <input id="pac-input" class="controls" type="text" placeholder="Search Box">
    <script type="text/javascript">        
        initialize(); // here is the Google code 
    </script>
</asp:Content>

默认.aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Vegindex
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
    }
}

最佳答案

要覆盖默认行为,您需要指定一个默认按钮。

在母版页中修改表单标记,如下所示:

<form runat="server" defaultbutton="btnDisableEnter">

并将相应的按钮添加到母版页的底部:

<asp:Button ID="btnDisableEnter" runat="server" Text="" OnClientClick="return false;" style="display:none;" />

免责声明:

解决方案采用 ASP.NET: Disable Submit Form on Enter Key

关于javascript - 空 Web 应用程序在 Enter 上发回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26176077/

相关文章:

javascript - 如何在所有浏览器上禁用菜单选项 "Save As"?

javascript - 使用 groupBy 和 map 使用 LoDash 和 Moment 转换数据

c# - 有没有办法在 LINQ 查询语法中使用 Distinct?

c# - 'Newtonsoft.Json.Linq.JArray' 不包含定义

javascript - 下载本地文件

asp.net - ASP.NET 中的 MailChimp oauth2 不断返回 invalid_grant

javascript - 创建一个按钮来控制 JavaScript 创建一些元素。然后,如果这些元素中的任何一个发生变化,请执行某些操作

javascript - 存在固定导航栏时的 HTML 页面转到内联链接

c# - Entity Framework 5 : Why is my entity's collection property empty?

c# - 将多个控件的特殊属性设置为相同的值