2012-08-25 23 views
0

我有一個需要獲取表單值的地方。我能夠在IE 7 & IE 8.抓取細的值以下爲形式使用serializearray()即時獲取在IE 8表單值我能得到的值看到

enter image description here

圖像下方:

enter image description here

但在IE 9的代碼相同的線不取的值參見下面的圖像:

enter image description here

有人請幫忙。我卡住了。而且,在這個時候我不能改變這個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" /> 

+0

什麼是你的JQuery的版本?你確定在這兩種情況下你看起來完全一樣嗎?也許一個Ajax請求加載部分尚未完成,等等。 – nemesv

+0

感謝你的回覆nemesv。我使用jquery-1.7.2.min.js。這是正在加載的頁面。點擊窗體上存在的任何控件(onclick)(需要在圖像中看到),我需要獲取其他控件的表單值。 – suman

+0

這適用於我:http://jsfiddle.net/S8rQa/ – snuffn

回答

3

的.serializeArray()方法使用成功控制,以確定哪些元素應當包括標準的W3C規則;特別是該元素不能被禁用,並且必須包含一個名稱屬性。

從上面的HTML中,您有兩個同名的隱藏字段(15),一個帶名稱的選擇元素(rightlist-DECISION)。沒有其他任何資格作爲'成功'的控制,所以serializeArray方法將無法滿足您的需求。

使用此jQuery來測試一下:

var objects = ​$("form").serializeArray(); 
for(var i = 0; i < objects.length; i++) { 
    $("#container").append(objects[i].name); 
} 
+0

我已經分享了生成的html。請檢查一下。等待你的回覆 – suman

+0

謝謝你的回覆山姆。你的意思是說,我給選擇控制的名稱是不正確的。如果我刪除名稱屬性,它會正常工作? 1.我將刪除選擇控件2上方的隱藏控件的名稱屬性。我將刪除/修改選擇控件的名稱屬性。它現在能工作嗎? – suman

+1

您需要數據的每個控件都必須具有指定的名稱屬性... name =「foo」。任何沒有該屬性的東西都會被表單post或serializeArray方法忽略。 –