javascript - 注册前接受模式

标签 javascript jquery asp.net-mvc bootstrap-modal

当用户尝试注册时,我希望在接受注册之前弹出一个包含一些条款的模式。在用户接受模式上显示的条款之前,一切似乎都有效。当用户按下按钮(submitBtn2)时,它没有反应。我尝试使用警报进行测试,看看我的提交是否存在问题,但甚至没有显示警报 - 我做错了什么?

注册表

@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
    <div align="center" class="w3-black w3-opacity" id="register">
        <br />
        @Html.AntiForgeryToken()
        <h4>Register</h4>
        <hr />
        @Html.ValidationSummary("", new { @class = "text-danger" })
        <div class="form-group" id="lastname">
            @Html.LabelFor(m => m.Email, new { @class = "control-label" })
            <div>
                @Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(m => m.Password, new { @class = "control-label" })
            <div>
                @Html.PasswordFor(m => m.Password, new { @class = "form-control" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(m => m.ConfirmPassword, new { @class = "control-label" })
            <div>
                @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" })
            </div>
        </div>
        <div class="form-group">
            <button class="w3-button w3-light-grey w3-section" type="submit" value="Register">
                <i class="fa fa-user"></i>Create user
            </button>
            <input type="button" name="ConfirmRegBtn" value="Submit" id="submitBtn" data-toggle="modal" data-target="#confirm-submit" class="w3-button w3-light-grey w3-section" />
        </div>
    </div>
}

JQuery

$('#submitBtn2').click(function () {
    /* when the submit button in the modal is clicked, submit the form */
    window.alert("sometext");
    //$('#Register').submit();
});

模态

    <!--legal data-stuff-->
<div class="modal fade" id="confirm-submit" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header w3-center">
                <h1>Before you create your user</h1>
            </div>
            <div class="modal-body scroll">
                Some stuff from database
                Lorem ipsum...
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                <a href="#" id="submitBtn2" class="btn btn-success success">Submit</a>
            </div>
        </div>
    </div>
</div>

最佳答案

您需要为表单提供一个Id。您可以在 BeginForm 帮助器方法的 htmlAttributes 参数中指定这一点。

@using (Html.BeginForm("Register", "Account", FormMethod.Post,
                 new { @class = "form-horizontal", role = "form" , @id= "Register" }))
{
   <!-- Your form elements/existing code goes here -->
}

这将生成带有Id属性值的表单标签Register

<form action="/" class="form-horizontal" id="Register" method="post" role="form">
       <!-- Your form elements  goes here -->
</form>

并在 jQuery 选择器中使用此 Id 属性值获取 form 元素并提交表单。

$(document).ready(function () {
    $('#submitBtn2').click(function () {
        $('#Register').submit();
    });
});

这是一种方法。另一种方法是将模态对话框保留在表单内,当单击模态中的按钮时,找到最接近的容器 form 标记并提交它。 jQuery closest 方法会很方便。但 Id 选择器会更快(希望比 o(n) 解决方案更好)

关于javascript - 注册前接受模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50204564/

相关文章:

javascript - 如果浏览器是 Internet Explorer,则运行脚本

javascript - 有没有办法使用相同的形式继续添加到 javascript 数组?

javascript - 如何为具有 contenteditable 属性的 div 元素添加 maxlength 限制?

c# - Mvc Dropdownlist 回发值

jquery - .NET MVC - "beforeunload"事件与服务器端检查

c# - 您可以使用命名的 JSON 属性将复杂对象传递给 C# Controller 吗?

javascript - 在 Socket IO 和 Node JS 中轮询 MySQL DB

javascript - 如何将主题标签链接集成到网页中并根据该主题标签加载模式?

jquery - 无效的 Web 服务调用,缺少参数值,但我将其包含在调用中

javascript - 如何在组合键 CTRL+i 上使用 <em> 包围文本区域内的选定文本?