有了这个,我列出了我的代码,它在所有浏览器中工作正常,但在IE中却没有。我搜索了堆栈溢出的解决方案仍然无法修复。请有人帮帮我 $(this).serialize()在IE中返回空
$('Form#UserTripSearch').live('submit',function()
{
$('#NavDetailHead12').html(HugeLoading);// for loader image
alert($(this).serialize());
//需要返回=>类型= 1&安培; sortby =降序&安培;状态=付费和安培;名称=彼得
var fullurl = $(this).attr('action')+'/'+$(this).serialize();
fullurl1= fullurl.replace(/&/g, "/");
fullurl2= fullurl1.replace(/=/g, ":");
// fullurl2 => sitename.com/type:1/sortby:desc/status:paid/name:peter
$.ajax({
type: "GET",
url: fullurl2,
data: "ajax=true",
success: function(data)
{
$('#NavDetailHead12').html(data);
}
});
return false;
});
HTML CODE:
<form action="sitename/search" method="get" id="UserTripSearch">
<select id="UserType" name="type">
<option value="1">User</option>
<option value="2">Member</option>
<option selected="selected" value="3">Non Member</option>
</select>
.....
<input type="text" id="UserName" placeholder="First name, Username" class="TextfiledCommon" name="name">
<div style=" float:left">
<span class="button">
<span>
<input type="submit" value="Search" id="button" name="button">
</span>
</span>
</div>
</form>
注意:我的HTML很好..
答案 0 :(得分:2)
jquery有IE 10(标准/ Quirks模式)的错误,.serialize()和.serizlizeArray()无法序列化表单数据。
<div id="showRole">
<form>
<input name="roleName" type="text" />
<input name="des" type="text" />
</form>
</div>
修复程序为:
var data = $("#showRole input").serialize();
使用div的id引用表单并序列化数据。
IE只是更改了DOM树,而jquery无法获取元素。
答案 1 :(得分:1)
$('Form#UserTripSearch').live('submit',function()
{
formdata = $(this).serialize();
alert( formdata);
$('#NavDetailHead12').html(HugeLoading);// for loader image
..........
.............
................
尝试上面的代码它应该工作
您正在尝试更换dom后序列化。这应该是问题,因为目标数据不存在。试试这个:)
答案 2 :(得分:0)
请在Fiddle Link中查看答案 现在工作正常..