我有一个要求,我需要获取表单值。我能够在IE 7和IE中获取正确的值。 IE 8.以下是表格
使用serializearray()我在IE 8中获取表单值我可以得到值,见下图:
但是在IE 9中,相同的代码行没有获取值,请参见下图:
有人请帮忙。我被卡住了。此外,在这个时间点我不能改变这个serializearray()函数,因为已经编写了很多代码。如果这需要改变。总工作量会有所收获
生成的html:
<form action="/SDLCMClassic/questionaire/questionairelist?projectArtifactId=53678&ppmFlag=N&level=Project" method="post"> <div class="body-container clearfix">
<div class="information-body clearfix" id="tblHeader">
<div class="information-header">
Assesment
</div>
<div class="form-align-div">
<label>PPM ID </label>
</div>
<div class="form-align-div-large">
182944
</div>
<div class="form-align-div">
<label>App Portfolio ID </label>
</div>
<div class="form-align-div-large">
116368
</div>
<div class="form-align-div">
<label>PPM Project Name </label>
</div>
<div class="form-align-div-large">
ITSVC FY11 SOIT ITSM HPSM uCMDB Integration
</div>
<div class="form-align-div">
<label>APP CIName </label>
</div>
<div class="form-align-div-large">
HPSM IT
</div>
</div>
</div>
<div class="clear-both" id="QuestionaireDiv">
<div class="parent_divqn" style="background-color:#fff;color:#000;">
<table id="tblSdlc" width="100%">
<tr>
<td width="2%">
1
</td>
<td width="50%">
List of authentication methods
</td>
<td width="48%">
<input type="hidden" value='DECISION' name='15' title='ListBox' />
<input type="hidden" id='hdnselectright' name='15' title='DECISION' />
<table width="45%">
<tr>
<td>
<label class="lable">
Available</label>
<select id="sourcelist-15" multiple="multiple" data-mandatory='Y' data-datatype='string' data-qindex='1' class="saral-select" style="width: 269px;">
<option value='1'>Active Directory</option>
<option value='2'>Enterprise Directory</option>
<option value='3'>DigitalBadge</option>
<option value='4'>SiteMinder</option>
<option value='5'>HP Passport</option>
<option value='6'>Cybersafe (SAP)</option>
<option value='7'>OATH</option>
<option value='8'>Non-Leveraged Authentication Infrastructure</option>
<option value='9'>Pending</option>
</select>
</td>
<td>
<table>
<tr>
<td>
<img id="MoveRight-15" src="/Content/Images/arrowRight.png" alt="Move Right" onclick='javascript:togglelistdata(this,'15','1','/SDLCMClassic/Questionaire/GetQuestionaireList')' />
</td>
</tr>
<tr>
<td>
<img id="MoveLeft-15" src="/Content/Images/arrowLeft.png" alt="Move Left" onclick='javascript:togglelistdata(this,'15','1','/SDLCMClassic/Questionaire/GetQuestionaireList')'/>
</td>
</tr>
</table>
</td>
<td>
<label class="lable">
Selected</label>
<select id="destlist-15" multiple="multiple" class="saral-select" data-mandatory='Y' data-datatype='string' data-qindex='1' name="rightlist-DECISION" style="width: 269px;">
</select>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="clear-both" id="container">
</div>
</div>
<input type="hidden" id="hdnAnsweredArray" />
<input type="hidden" id="hdninputcountArray" />
<input type="hidden" id="hdninput" />
<input type="hidden" id="hdnlistboxid" />
答案 0 :(得分:3)
.serializeArray()方法使用标准W3C规则来成功控制,以确定它应包含哪些元素;特别是该元素不能被禁用,并且必须包含name属性。
从上面的HTML中,您有2个具有相同名称的隐藏字段(15),一个具有名称的选择元素(rightlist-DECISION)。没有其他东西可以作为“成功”的控件,因此serializeArray方法不会像你想要的那样工作。
使用此jQuery测试它:
var objects = $("form").serializeArray();
for(var i = 0; i < objects.length; i++) {
$("#container").append(objects[i].name);
}