代码之家  ›  专栏  ›  技术社区  ›  jircdeveloper

如何用ajax调用替换引导框内容?

  •  0
  • jircdeveloper  · 技术社区  · 9 年前

    我在这里比较新,只会说一点点英语。很抱歉,如果我在写作时出错。

    我正在使用bootbox对话框,并试图以相同的模式显示ajax响应,但我做不到。有人可以帮助我吗?哪种方法是最好的?

    我有一个带有登录链接的页面。当有人点击那里时,我会在一个引导框对话框中显示该表单,该表单有一个类似“没有帐户?单击此处”的链接,我的想法是在同一个引导对话框中显示另一个表单

    我试过了:

    $(document).on({
        "show.bs.modal":function(e){
            if($(".bootbox.in ").size()>0){
    
                $(".bootbox.in ").removeData('bs.modal');
                e.preventDefault();
            }
    
            $(".bootbox.in").children(".modal-content")
           .html($(e.target).children(".modal-content").html());
     });
    

    非常感谢你的帮助!

    1 回复  |  直到 9 年前
        1
  •  1
  •   Matt    9 年前

    您可以使用由HTML组成的字符串在启动框中设置HTML。然后,打开启动框后,您可以修改HTML中的内容。

    如。

    // Nifty function that converts a comment to a string
    var HTMLstring = (function () {/*
        <div id="container">
            <h1>Title</h1>
            <div id="subcontainer">
                LOGIN FORM HERE
                <button id="createAccount"></button>
            </div>
        </div>
    */}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];
    // Initialize bootbox with the above string
    bootbox.dialog({
        message: HTMLstring,
        buttons:            
        {
            "danger" :
            {
                "label" : "Close",
                "className" : "btn-sm btn-danger",
                "callback": function() {
    
                }
            }
        }
    });
    // Here we attach the listeners to the above modal, to do what we want.
    $('#createAccount').click(function() {
        createAccountHTML = 'This can be your html for create account form';
        $('#subcontainer').html(createAccountHTML);
    });
    

    或者,用javascript替换HTML的更好选择是使原始HTML字符串具有可在两者之间进行交换的类似制表符的结构。