从未想过我会遇到这个问题:)
下面的代码片段在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>
有人能发现我做错了吗?
答案 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
尝试一下,看看它是否有任何改变。