所有浏览器的JQuery问题,但IE 6.0 / 7.0 :)

时间:2009-07-07 01:14:17

标签: jquery ajax

从未想过我会遇到这个问题:)

下面的代码片段在IE 6.0 / 7.0中有效,但没有其他浏览器(在“兼容性视图”中是IE 8.0):

$(document).ready(function(){

    // Search button code
    $('#btnSearch').click(function() { //start function when button is clicked
            var sid = $('#search_id').val();
            $.ajax({
                    method: "get",url: "controller.php",data: { search_id:sid, action:'search'} ,
                    beforeSend: function(){$("#loading").show("slow");}, //show loading just when link is clicked
                    complete: function(){ $("#loading").hide("slow");}, //stop showing loading when the process is complete
                    success: function(html){ //so, if data is retrieved, store it in html
                            $('.main_content').html(html); //show the html inside .main_content div
                            $('.main_content').show("slow"); //animation
                    }
            });

            $("form").each(function() {
                    this.reset();
            });
    });
});

HTML看起来像(仅包括相关部分):

<div>
<form id="srchForm" method="post" action="">
<p><abbr title="Search ID"><label for="search_id">Search ID:</label></abbr><input   type="text" name="search_id" id="search_id">
<button id="btnSearch" value="search">go</button>
</p>
</form>
<div id="loading">LOADING!!!!!!!!!!!!!!!!<br></div>
<hr>
<div id="main_content" class="main_content"></div>
</div>
<div>
<div class="add_content"></div>
</div>

有人能发现我做错了吗?

2 个答案:

答案 0 :(得分:0)

快速浏览一下:

ajax方法的data属性允许JavaScript对象和字符串,但我从来没有运气使用除JSON字符串以外的任何东西。在IE中你可以使用JSON.Stringify(),但你应该看看一些JQuery插件。例如,这一个jquery-json

data: { search_id:sid, action:'search'} ,

会变成:

data: $.toJSON({ search_id:sid, action:'search'}) ,

其次:

$('.main_content').html(thml);

看起来你写的是'thml'而不是'html'。

否则代码对我来说很好。

答案 1 :(得分:0)

只是猜测,您是否可以尝试将按钮定义为“输入”标签而非“按钮”标签?

<input id="btnSearch" value="search" type="button" /> //Use this
<button id="btnSearch" value="search">go</button> //instead of this

尝试一下,看看它是否有任何改变。