在表单内部标记时,按钮单击事件不会触发

时间:2015-11-17 21:57:12

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

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

单击 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>

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您应该只拥有一组表单标签 - 所以打开和关闭。

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

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

答案 2 :(得分:0)

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

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

通过这种方式,您明确告诉按钮是要提交表单。