javascript - 单击按钮时关闭模态窗体并打开一个新窗体

标签 javascript html css forms modal-dialog

所以我正在为学校元素建立一个网站,但似乎有一个部分遇到了一些问题。我有一个注册链接,这样用户就可以注册成为该网站的成员(member)。单击注册链接后,屏幕中间会弹出一个模态表单,用户可以在其中将数据输入特定字段。完成此操作后,他们单击页面底部的提交按钮“开始”。这会触发另一个模式窗体弹出“感谢您注册 Dominion Luxury Cars”。右上角有一个 X,一旦他们单击它,我注意到注册模式表单仍然打开。我试图做到这一点,以便在单击“开始”按钮时关闭注册模式表单。截至目前,注册模式表单关闭的唯一方式是单击右上角的 X。我也想保留这个。基本上,我希望在单击 X 或单击“Go”按钮时关闭“注册”模式表单,如果单击“Go”按钮,我希望模式表单显示“感谢您注册 Dominion Luxury Cars”出现。

感谢任何能够帮助我的人。我真的很感激。

以下是我的代码的 JSFIDDLE 版本,由于某种原因,使用 JSFIDDLE 时表单不会弹出,但是我知道该代码可以工作,您可以将其发布到文本编辑器中以进行测试。

http://jsfiddle.net/3cjbf/

//HTML CODE

<li><a href="#" onClick="openSignUp()">Sign-Up</a>
</li>
<div class="modalSignUp">
    <div>
        <table>
            <tr>
                <td>
                    <input type="text" placeholder="First Name" />
                </td>
                <td>
                    <input type="text" placeholder="Last Name" />
                </td>
            </tr>
            <tr>
                <td>
                    <input type="text" placeholder="E-mail" />
                </td>
                <td>
                    <input type="text" placeholder="Phone Number" />
                </td>
            </tr>
            <tr>
                <td>
                    <input type="text" placeholder="Street Address" />
                </td>
                <td>
                    <input type="text" placeholder="City" />
                </td>
            </tr>
            <tr>
                <td>
                    <input type="text" placeholder="State" />
                </td>
                <td>
                    <input type="text" placeholder="Zip Code" />
                </td>
            </tr>
        </table>
        <div class="newsletter">
            <input type="checkbox" />Subscribe to Dominion Luxury Cars News Letter?
            <br />
            <button type="submit" onClick="openConfirm()">Go</button> <a onclick="closeSignUp()" class="close">X</a>

        </div>
    </div>
</div>
<div class="modalConfirm">
    <div>
        <p>Thank you for registering for Dominion Luxury Cars</p> <a onclick="closeConfirm()" class="close">X</a>

    </div>
</div>

// CSS CODE

/********************************************************************************************************************/

/*Designing Modal Forms*/

/********************************************************************************************************************/
 #target {
    opacity:1;
    pointer-events: auto;
}
.close {
    background: #606061;
    color: #FFFFFF;
    line-height: 25px;
    position: absolute;
    right: -12px;
    text-align: center;
    top: -10px;
    width: 24px;
    text-decoration: none;
    font-weight: bold;
    -webkit-border-radius: 12px;
    -moz-border-radius: 12px;
    border-radius: 12px;
    -moz-box-shadow: 1px 1px 3px #000;
    -webkit-box-shadow: 1px 1px 3px #000;
    box-shadow: 1px 1px 3px #000;
}
.close:hover {
    background: #000000;
}
/********************************************************************************************************************/

/*Style Modal SignUp*/

/********************************************************************************************************************/
 .modalSignUp {
    position:fixed;
    font-family: Arial, Helvetica, sans-serif;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.8);
    z-index: 99999;
    opacity:0;
    -webkit-transition: opacity 400ms ease-in;
    -moz-transition: opacity 400ms ease-in;
    transition: opacity 400ms ease-in;
    pointer-events: none;
}
.modalSignUp > div {
    width: 300px;
    position: relative;
    margin: 10% auto;
    padding: 5px 20px 13px 20px;
    border-radius: 10px;
    background: #fff;
    background: -moz-linear-gradient(#fff, #999);
    background: -webkit-linear-gradient(#fff, #999);
    background: -o-linear-gradient(#fff, #999);
    height:250px;
}
.modalSignUp table {
    margin-left:2%;
    margin-top:10%;
    width:100%;
}
.modalSignUp button {
    float:right;
    margin-right:8px;
}
.signuplogo {
    margin-left:35%;
}
.newsletter {
    width:285px;
    height:20px;
    margin-left:auto;
    margin-right:auto;
    font-size:10px;
}
/********************************************************************************************************************/

/*Style Modal Confirm*/

/********************************************************************************************************************/
 .modalConfirm {
    position:fixed;
    font-family: Arial, Helvetica, sans-serif;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 99999;
    opacity:0;
    pointer-events: none;
}
.modalConfirm > div {
    width: 300px;
    position: relative;
    margin: 10% auto;
    padding: 5px 20px 13px 20px;
    border-radius: 10px;
    background: #fff;
    background: -moz-linear-gradient(#fff, #999);
    background: -webkit-linear-gradient(#fff, #999);
    background: -o-linear-gradient(#fff, #999);
    height:250px;
}
.modalConfirm p {
    margin-top:50px;
    text-align:center;
}

//JAVASCRIPT

function openSignUp() {
    document.getElementsByClassName('modalSignUp')[0].id = 'target';
}

function closeSignUp() {
    document.getElementsByClassName('modalSignUp')[0].id = '';
}

function openConfirm() {
    document.getElementsByClassName('modalConfirm')[0].id = 'target';
}

function closeConfirm() {
    document.getElementsByClassName('modalConfirm')[0].id = '';
}

最佳答案

你拥有一切。您唯一需要做的就是修改 Go 按钮的 onclick 处理程序:

<button type="submit" onClick="openConfirm(); closeSignUp();">Go</button>

工作 jsfiddle. .它没有工作,因为你有'执行onLoad'的javascript设置,所以你的函数被包装在一个事件处理程序中并且不是全局的。我改了。

关于javascript - 单击按钮时关闭模态窗体并打开一个新窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22511456/

相关文章:

javascript - JS - 改变 .top 属性

HTML/CSS 悬停一个元素,影响两个不同的 div?

javascript - 从数组中返回奇数或偶数

css - 在窗口浏览器中拉伸(stretch)一个 div

javascript - 将 html 代码添加到 SharePoint Online

javascript - 如果类在 jQuery 或 JS 中,则将 css 类添加到所有列表元素

javascript - SVG:缩放 SVG 文档时如何缩放字体大小?

javascript - 将 SVG 元素拖到新位置

javascript - 如何在 JavaScript 中定义和操作 Date 变量?

javascript - 如何将嵌套的 json 数据绑定(bind)到 angularjs 下拉列表中?