0

我有一个需要获取表单值的要求。我能够在 IE 7 和 IE 8 中很好地获取值。下面是表格

在此处输入图像描述

使用 serializearray() 我在 IE 8 中获取表单值,我可以得到值,见下图:

在此处输入图像描述

但在 IE 9 中,同一行代码未获取值,请参见下图:

在此处输入图像描述

请有人帮忙。我被困住了。此外,此时我无法更改此 serializearray() 函数,因为已经编写了很多代码。如果这需要改变。总的工作要折腾

生成的html:

<form action="/SDLCMClassic/questionaire/questionairelist?projectArtifactId=53678&amp;ppmFlag=N&amp;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,&#39;15&#39;,&#39;1&#39;,&#39;/SDLCMClassic/Questionaire/GetQuestionaireList&#39;)' />
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <img id="MoveLeft-15" src="/Content/Images/arrowLeft.png" alt="Move Left" onclick='javascript:togglelistdata(this,&#39;15&#39;,&#39;1&#39;,&#39;/SDLCMClassic/Questionaire/GetQuestionaireList&#39;)'/>
                                        </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" />

4

1 回答 1

3

.serializeArray() 方法使用成功控制的标准 W3C 规则来确定它应该包含哪些元素;特别是该元素不能被禁用,并且必须包含名称属性。

从上面的 HTML 中,您有 2 个具有相同名称 (15) 的隐藏字段,一个具有名称 (rightlist-DECISION) 的选择元素。没有其他东西可以称为“成功”控件,因此 serializeArray 方法不会像您希望的那样工作。

使用这个 jQuery 来测试它:

var objects = ​$("form").serializeArray();
for(var i = 0; i < objects.length; i++) {
  $("#container").append(objects[i].name);
}
于 2012-08-25T14:42:09.047 回答