【问题标题】:Button click event not firing when inside form tags在表单标签内时按钮单击事件未触发
【发布时间】:2016-02-19 11:09:48
【问题描述】:

我在一个网站上有一个联系表格,它通过电子邮件将表格发送给网站所有者。

单击按钮 btnSubmit 运行后面的 vb 代码以发送电子邮件,直到我使用 Bootstrap 设置表单样式然后按钮单击事件停止触发。

如果我将按钮放在父表单标签之外,它会再次起作用,但我希望它在里面,这样它将触发所需字段的 HTML5 验证。

代码不工作:

    <div class="form-group">
        <label for="txtName">Name:</label>
        <asp:TextBox ID="txtName" runat="server" type="text" CssClass="form-control" required />
    </div>

    <div class="form-group">
        <label for="txtEmail">Email address:</label>
        <asp:TextBox ID="txtEmail" runat="server" type="email" CssClass="form-control" required />
    </div>

    <div class="form-group">
        <label for="ddlProduct">Product</label>
        <asp:DropDownList ID="ddlProduct" runat="server" CssClass="form-control" AppendDataBoundItems="True" DataSourceID="SQSItemNames" DataTextField="itemName" DataValueField="itemName">
            <asp:ListItem></asp:ListItem>
        </asp:DropDownList>
    </div>

    <div class="form-group">
        <label for="txtMessage">Message</label>
        <asp:TextBox ID="txtMessage" runat="server" type="text" CssClass="form-control" TextMode="MultiLine" Rows="5" required />
    </div>

    <asp:Button ID="btnSubmit" runat="server" Text="Send" CssClass="btn btn-primary pull-right" />

</form>

编辑:不确定这是否会有所不同,但相关页面引用了母版页。

【问题讨论】:

  • 母版页上总共有多少个表单标签?
  • 母版页上有两个表单标签
  • 你应该只拥有一个 - 所以一个打开和一个关闭 - 如果你的表单中有一个表单会破坏你的功能 - 仍然使用引导程序我通常用 div 标签替换表单标签
  • 感谢您,我将母版页中的引导表单更改为 div,它立即开始工作。如果您将此作为答案发布,我会将其标记为已确认,以便您获得代表!

标签: asp.net vb.net html twitter-bootstrap webforms


【解决方案1】:

您应该只拥有一组表单标签——即打开和关闭。

如果您的表单中有一个表单会破坏您的功能。

如果您仍想使用引导样式,可以将表单标签替换为 div 标签。

【讨论】:

    【解决方案2】:

    您的代码没有在后面的代码中调用您的事件,缺少在他的按钮中引用该事件,例如:

    <asp:Button ID="btnSubmit" runat="server" Text="Send" CssClass="btn btn-primary pull-right" OnClick="btnSubmit_Click" />
    

    【讨论】:

    • 不幸的是,这并没有解决问题,问题实际上是有多个表单,一个在母版页内。一旦我删除了它工作的母版页表单,作为检查,我还添加了点击事件,但这导致发送了两次电子邮件!
    【解决方案3】:

    我使用的是 Razor,而不是 Web 表单,所以这在语法上可能有点偏差,但请尝试使用

    <asp:input type="submit" ... />
    

    这样你就明确地告诉按钮它是提交表单。

    【讨论】:

      猜你喜欢
      • 2012-03-14
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      • 1970-01-01
      • 2010-10-21
      相关资源
      最近更新 更多