1

我使用带有$('#countryid').load('/some/url',{country: country_id});函数的 jQuery 来根据之前选择的国家/地区自动加载区域选项。

当我通过 ajax 加载 html 时它工作正常。

但我需要加载 javascript 代码。当我尝试这样做时,所有选择字段都会从页面中消失......

我究竟做错了什么?

代码:

<script type="text/javascript">
$(document).ready(function() {
    $('#countrydropdown').change(function() {
        var countryvalue = $('#countrydropdown option:selected').val();
        if(countryvalue==0){clearlist();}
        getarea();
    });
});
function getarea(){
    var countryvalue = $('#countrydropdown option:selected').val();
    var area = $('#areadropdown');
    if(countryvalue==0){
        area.attr("disabled",true);
    }else{
        area.attr("disabled",false);
        area.load('/ajax/2/',{country: countryvalue});
    }
}
function clearlist(){
    $('#areadropdown').empty();
}
</script>

<form action="" id="form">
    <select id="countrydropdown">
        <option value="0">Countries</option>
        ...
    </select>
    <select id="areadropdown" disabled="disabled">

    </select>
</form>

谢谢!!!

4

3 回答 3

1

您可以使用 eval 执行 javascript 代码

eval(ajax.request);
于 2011-11-23T10:32:41.533 回答
1

根据您对我之前回答的评论表明您正在使用的代码:

<script type="text/javascript">for(var i in arr) document.write(arr[i]);</script>

页面加载完成后,文档将进入关闭状态。

你不能document.write将一个文档置于 cosed 状态,所以document.open会被自动调用。

这将丢弃现有文档,以便可以编写新文档。

使用DOM操作文档,不要靠近document.write.

于 2011-11-23T10:50:21.440 回答
0

如果您只加载JavaScript,请使用getScript而不是load.

如果您正在加载 HTML 和 JavaScript 的组合,那么我会认真考虑重构,以便 JavaScript 已经到位,并且使用事件处理live而不是直接绑定到元素本身。

于 2011-11-23T10:35:52.600 回答