jquery ajax不能正确更改值

时间:2014-05-12 14:08:37

标签: jquery html ajax

我正在网站上工作,但我遇到了一个问题:我有一个文档列表,如果点击它将显示在iframe中。在列表和iframe上我有一个输入表单,我必须在其中写入文档标题。因此,当我第一次点击文档时输入表单没有改变(默认为“#”),但是当我点击第二个文档时它会获取第一个文档的标题,如果我继续它,则总是最后一个文件的标题,而不是当前选定的标题。

但如果我推荐警报功能,它会显示最后一个文件的标题,但输入表格会显示正确的标题。

此处 HTML代码:

    <div>
        <iframe class="iframe" src="" id="file" height="480" text-align="center" name="link"> </iframe> 
    </div>

    <div>
        Title <br> &nbsp; <input type="text" id="title" value="#" style="background-color:#FFCC99"><br>
    </div>

这里 jquery / ajax代码:

function load(file) {
        $.ajax({
            method: 'GET',
            url: file,
            success: function(d) {
                $('#file').attr('src',file);
                //alert($('#file').contents().find('h1.document-title').text());                    
                $('#title').attr('value',$('#file').contents().find('h1.document-title').text());
            },
            error: function(a,b,c) {
                alert('Non ho potuto caricare il file '+file)
            }
        });
    }

也许是因为警报停止运行代码而且它允许加载完整的文档,而没有它,输入表单的值在完全加载所选文档之前会被更改?

如何在输入表单上显示正确的图块? (警报仅用于调试,我不需要它)

感谢您的帮助,抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

当行$('#title').attr('value',$('#file').contents().find('h1.document-title').text());

时,可能没有加载Iframe中的文档

已执行,因此一个好的尝试是将.ready()添加到iframe,如

success: function(d) {
            $('#file').attr('src',file);
            $('#file').ready(function() {
                $('#title').attr('value',$('#file').contents().find('h1.document-title').text());
            });                    

        },

这是我的Reference