0

我在成功使用多次的脚本时遇到问题。我编写了它并将其用于模态框中的 AJAX 表单。但突然它返回未定义。我一无所知。感谢帮助。

(jQuery 版本 1.9.1)

$(document).ready(function (){
    bind_bootstrap_modal_ajax_form('a[href*="prihlaseni"]', '#login-form');
});

function bind_bootstrap_modal_ajax_form(linkSelector, objSelector) {
    $(linkSelector).each(function(){
        var $linkObj = $(this);
        var link = $(linkSelector).attr('href');
        var objId = "modalFormContent" + Math.floor((Math.random()*10000)+1)

        $.get(link)
            .done(function(data) { 

                var $content = $(objSelector, data);

                var appendHTML = 
                '<div> ...'+
                        $content.html() + // This returns undefined
                '... </div>';
                $('body').append(appendHTML);
                var $obj = $('#'+objId);

                $linkObj.attr({
                    'data-toggle': 'modal',
                    'href': '#'+objId
                });

                // ...
            });
    });
}

data包含:

<!DOCTYPE html>
<html lang="cs" class="windows chrome chrome28 no-js">
    <head>
        <!-- ... -->
    </head>
<body class="empty">

    <div id="login-form">



    <form action="?login" method="post" class="form-horizontal m0">
        <fieldset>
            <legend>Přihlášení</legend>
            <div class="control-group">
                <label class="control-label" for="inputEmail">E-mail</label>
                <div class="controls">
                    <input type="text" name="login" id="login">
                </div>
            </div>
            <div class="control-group">
                <label class="control-label" for="inputPassword">Heslo</label>
                <div class="controls">
                    <input type="password" name="pass" id="pass">
                </div>
            </div>
            <div class="control-group">
                <div class="controls">
                    <button type="submit" class="btn">Přihlásit</button>
                </div>
            </div>
        </fieldset>
    </form>





    </div>

</body>
</html>
4

1 回答 1

1

jQuery 构造函数的第二个参数是要在其中搜索第一个参数的 DOM 上下文。

 // Looks for something matching 'objSelector' inside the DOM object 'data'
var $content = $(objSelector, data); // Will not work if data is a string

由于数据是一个字符串,你可以这样做:

var $content = $(objSelector, $(data));

#login-form从数据中获取div。

于 2013-07-01T21:02:18.693 回答