Bootstrap 模态启动时间递增 [英] Bootstrap modal firing up incrementing times

查看:32
本文介绍了Bootstrap 模态启动时间递增的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Bootstrap Modal 触发一次动作,如果我再次点击它会触发两次,依此类推.

<div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button><h4 class="modal-title">登录</h4>

<div class="modal-body"><h3>用户名</h3><input type="text" id="userLogin" placeholder="用户名"><h3>密码</h3><input type="password" id="pwdLogin" placeholder="密码"><br><br><input type="checkbox" id="rememberMe">记住我

<div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal">关闭</button><button type="button" class="btn btn-primary" id="btnLogin">登录</button>

这是触发模态的跨度.

<span id="comment"><a id="testComment" data-toggle="modal" href="#loginModal" class="btn btn-default">添加评论</a></span>

单击跨度后,模态显示.我点击#btnLogin,然后该操作会启动一次、两次,以此类推.

与模态交互的javascript(动作在跨度点击内):

$("#testComment").click(function (event) {if ($("#msg").val() == "" || $("#nombre").val() == "") {alert("要发送评论,请填写您的邮件和消息!");event.stopPropagation();}别的 {$("#btnLogin").click(function () {警报(这也是");$(this).off('shown.bs.modal');if ($("#userLogin").val() != "" && $("#pwdLogin").val() != "") {var dataToSend = {动作":登录", "用户名": $("#userLogin").val(), "密码": $("#pwdLogin").val(), "记住": $("#rememberMe").is(":checked")}$.ajax({网址:数据/applicationLayer.php",输入:POST",数据:dataToSend, dataTpe: "json",成功:函数(jsonData){变量数据 = {"评论": $("#msg").val(), "用户名": $("#username").val()}$.ajax({网址:数据/addComment.php",输入:POST",数据:数据,数据类型:文本",成功:功能(数据响应){var newHTMLContent = "";newHTMLContent += ""+ data.username + "</td>"+ "<td>"+ data.comment + "</td></tr>";$("#commentTable").append(newHTMLContent);alert("评论已添加!");},错误:函数(errorMsg){alert("在ajax中添加注释时出错");}});},错误:函数(errorMsg){alert("登录错误");}});}别的 {alert('缺少用户名或密码.');}});}});

解决方案

只需将 $("#btnLogin").click 事件放在外面.这是我的代码或使用以下链接可能对您有所帮助.

JSFiddle

JAVSCRIPT

$("#testComment").click(function(event) {if ($("#msg").val() == "" || $("#nombre").val() == "") {alert("要发送评论,请填写您的邮件和消息!");event.stopPropagation();}});$("#btnLogin").click(function() {警报(这也是");$(this).off('shown.bs.modal');if ($("#userLogin").val() != "" && $("#pwdLogin").val() != "") {var dataToSend = {"action": "登录","用户名": $("#userLogin").val(),"密码": $("#pwdLogin").val(),"记住": $("#rememberMe").is(":checked")}$.ajax({url: "data/applicationLayer.php",类型:POST",数据:数据发送,数据类型:json",成功:函数(jsonData){变量数据 = {"评论": $("#msg").val(),"用户名": $("#username").val()}$.ajax({url: "data/addComment.php",类型:POST",数据:数据,数据类型:文本",成功:功能(数据响应){var newHTMLContent = "";newHTMLContent += ""+ data.username + "</td>"+ "<td>"+ data.comment + "</td></tr>";$("#commentTable").append(newHTMLContent);alert("评论已添加!");},错误:函数(errorMsg){alert("在ajax中添加注释时出错");}});},错误:函数(errorMsg){alert("登录错误");}});} 别的 {alert('缺少用户名或密码.');}});

Bootstrap Modal fires action one time and if I click again it will fire up twice and so on.

<div id="loginModal" class="modal fade">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title">Log In</h4>
            </div>
            <div class="modal-body">
                <h3>Username</h3>
                <input type="text" id="userLogin" placeholder="Username">
                    <h3>Password</h3>
                    <input type="password" id="pwdLogin" placeholder="Password">
                        <br>
                            <br>
                                <input type="checkbox" id="rememberMe">Remember Me
                                    </div>
                                    <div class="modal-footer">
                                        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                                        <button type="button" class="btn btn-primary" id="btnLogin">Log In</button>
                                    </div>
            </div>
        </div>
</div>

Here's the span that fires the modal.

<span id="comment"><a id="testComment" data-toggle="modal" href="#loginModal" class="btn btn-default">Add comment</a></span>

After I click the span the modal shows. I click the #btnLogin and then the action fires up one time, two times and so on.

javascript that interacts with the modal(the action is within the span click):

$("#testComment").click(function (event) {
    if ($("#msg").val() == "" || $("#nombre").val() == "") {
        alert("To send a comment fill your mail and message!");
        event.stopPropagation();
    }
    else {
        $("#btnLogin").click(function () {
            alert("this also");
            $(this).off('shown.bs.modal');
            if ($("#userLogin").val() != "" && $("#pwdLogin").val() != "") {
                var dataToSend = {
                    "action": "LOGIN"
                    , "username": $("#userLogin").val()
                    , "password": $("#pwdLogin").val()
                    , "remember": $("#rememberMe").is(":checked")
                }
                $.ajax({
                    url: "data/applicationLayer.php"
                    , type: "POST"
                    , data: dataToSend
                    , dataTpe: "json"
                    , success: function (jsonData) {
                        var data = {
                            "comment": $("#msg").val()
                            , "username": $("#username").val()
                        }
                        $.ajax({
                            url: "data/addComment.php"
                            , type: "POST"
                            , data: data
                            , dataType: "text"
                            , success: function (dataResponse) {
                                var newHTMLContent = "";
                                newHTMLContent += "<tr><td>" + data.username + "</td>" + "<td>" + data.comment + "</td></tr>";
                                $("#commentTable").append(newHTMLContent);
                                alert("Comment was added!");
                            }
                            , error: function (errorMsg) {
                                alert("Error adding comment in ajax");
                            }
                        });
                    }
                    , error: function (errorMsg) {
                        alert("Login Error");
                    }
                });
            }
            else {
                alert('Missing username or password.');
            }
        });
    }
});

解决方案

Just put $("#btnLogin").click event outside. Here is the my code or go with below link may be it can help you.

JSFiddle

JAVSCRIPT

$("#testComment").click(function(event) {
    if ($("#msg").val() == "" || $("#nombre").val() == "") {
        alert("To send a comment fill your mail and message!");
        event.stopPropagation();
    }
});
$("#btnLogin").click(function() {
    alert("this also");
    $(this).off('shown.bs.modal');
    if ($("#userLogin").val() != "" && $("#pwdLogin").val() != "") {
        var dataToSend = {
            "action": "LOGIN",
            "username": $("#userLogin").val(),
            "password": $("#pwdLogin").val(),
            "remember": $("#rememberMe").is(":checked")
        }
        $.ajax({
            url: "data/applicationLayer.php",
            type: "POST",
            data: dataToSend,
            dataTpe: "json",
            success: function(jsonData) {
                var data = {
                    "comment": $("#msg").val(),
                    "username": $("#username").val()
                }
                $.ajax({
                    url: "data/addComment.php",
                    type: "POST",
                    data: data,
                    dataType: "text",
                    success: function(dataResponse) {
                        var newHTMLContent = "";
                        newHTMLContent += "<tr><td>" + data.username + "</td>" + "<td>" + data.comment + "</td></tr>";
                        $("#commentTable").append(newHTMLContent);
                        alert("Comment was added!");
                    },
                    error: function(errorMsg) {
                        alert("Error adding comment in ajax");
                    }
                });
            },
            error: function(errorMsg) {
                alert("Login Error");
            }
        });
    } else {
        alert('Missing username or password.');
    }
});

这篇关于Bootstrap 模态启动时间递增的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
前端开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆