使用.load()加载页面片段会排除嵌入的javascript

时间:2010-12-14 10:19:37

标签: jquery load parameter-passing

我有一个使用.load()方法加载的表单。

$(function() {
    $('#items,#button-search').hide();
    $("#companies").click(function() { 
        $(this).attr("value",""); 
        $('#address,#new-company-form').empty();
    });
    $( "#companies" ).autocomplete({
        source: ";companies",
        minLength: 2,
        select: function( event, ui ) {
            if(ui.item.id == "create-new-company") {
                // call the new company form
                $('#address').empty();
                $('#new-company-form').load(';company_form #autoform');
            }
            else
            {
                $('#new-company-form').empty();
                $.ajax({
                    type: 'GET',
                    url: ';addresses?company=' + ui.item.id,
                    dataType: 'json',
                    // process the addresses
                    success: function(json) {
                        var opts = '';
                        $.each(json, function(k, v) {
                            opts += '<option>' + v + '</option>';
                        });
                        $('#address').html('<select>' + opts + '</select>');
                    }
                }); //end ajax call to address
            }
        } // end select address
    }); // end autocomplete
}); // end function

在第15行,我有

$('#new-company-form').load(';company_form #autoform');

如果我删除#autoform,那么; company_form html中的javascript就可以了,否则就不会加载。

我如何让它工作?

感谢

2 个答案:

答案 0 :(得分:0)

.load()方法的第一个参数是url。您需要的网址可能只是;company_form。你想通过在网址中传递#autoform来实现什么目标?

如果它在没有#autoform的情况下有效,那么为什么不简单地删除它呢?

答案 1 :(得分:0)

是的,他只想加载页面片段。第一个参数确实是url,所以只需输入'company_form'所在页面的名称,然后添加所需的片段。所以看起来应该是这样......

$('#new-company-form').load('company_form.php #autoform');

我想唯一的变化是将扩展名添加到'company_form'