2012-07-17 46 views
0

我有以下表單,當我單擊下一個按鈕時,我想獲取隱藏表單字段「kpiValueType」的值。在Firefox中使用jQuery獲取隱藏表單字段值的問題

<script type="text/javascript"> 
    function getGivenFieldValue() 
    { 
     var searchFieldVal = jQuery('input:hidden[name="activities[0].kpiList[0].kpiValueType"]').val(); 
     alert(searchFieldVal); 
    } 
</script> 

<h:form id="fundRequestForm" action="" method="post"> 
    <ui:repeat value="#{fundRequestBean.requestActivityList}" var="activity" varStatus="stat"> 
     <table width="100%" class="tablesorter"> 
      <thead class="fixedHeader"> 
       <tr> 
        <th width="418px"> 
          <input type="checkbox" checked="checked" name="activities[#{stat.index}].check" /> 
         #{activity.activityName} 
        </th> 
        <th>&nbsp;</th> 
       </tr> 
      </thead> 
      <tbody> 
       <ui:repeat value="#{activity.kpiList}" var="kpi" varStatus="status"> 
        <tr> 
         <td>#{kpi.kpiName}<ui:fragment rendered="#{kpi.required=='true'}"> 
           <label style="color: red">*</label> 
          </ui:fragment> 
         </td> 
         <td><div style="text-align: left; padding-top: 5px; padding-bottom: 5px; float: left;"> 
           <input type="text" name="activities[#{stat.index}].kpiList[#{status.index}].kpiValueString" 
             value="#{kpi.kpiValueString}" size="60" maxlength="50" /> 
         </td> 
        </tr> 
        <input type="hidden" name="activities[#{stat.index}].kpiList[#{status.index}].kpiValueType" 
         value="#{kpi.kpiValueType}" /> 
       </ui:repeat> 
      </tbody> 
     </table> 
    </ui:repeat> 

    <table width="100%" border="0" bordercolor="#CCCCCC" rules="none" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td colspan="3" align="center">&#160;&#160;&#160;&#160;</td> 
     </tr> 
     <tr> 
      <td>&#160;&#160;&#160;&#160;</td> 
      <td>&#160;&#160;&#160;&#160;</td> 
      <td align="right"><div id="nextButtonDiv" style="float: right;"> 
        <h:commandButton 
         onclick="getGivenFieldValue()" 
         actionListener="#{fundRequestBean.saveFundRequest}" action="#{fundRequestBean.getPreviewFundRequestData}" 
         value="#{msg.nextLbl}"> 
        </h:commandButton> 
       </div>&#160;&#160;&#160;&#160;&#160;&#160;&#160;</td> 
     </tr> 
     <tr> 
      <td colspan="3" align="center">&#160;&#160;&#160;&#160;</td> 
     </tr> 
    </table> 
</h:form> 

從頁面的源代碼,我看到了隱藏字段kpiValueType的名稱

<input type="hidden" name="activities[0].kpiList[0].kpiValueType" value="N" /> 

警報給我不確定。你能告訴我這裏有什麼問題嗎?我使用jQuery 1.7和Firefox 13.0.1

回答

1

你需要躲避.字符選擇:

var searchFieldVal = jQuery('input:hidden[name="activities[0]\\.kpiList[0]\\.kpiValueType"]').val(); 
alert(searchFieldVal); 

這裏有一個working example

+0

感謝詹姆斯,工作。但以前我使用jQuery 1.4,並且相同的代碼工作正常。我升級到jQuery 1.7後停止工作。新版本中有沒有改變? – Sri 2012-07-17 14:54:51

+0

@Sri - 我不確定,但如果我在小提琴中更改jQuery的版本並刪除轉義字符,它仍然不起作用。即使你使用的是舊版本,也絕對可以逃脫它們。 – 2012-07-17 14:58:55

+0

詹姆斯爲了讓我的xhtml我必須逃避隱藏輸入字段的名稱,如下所示:,因爲這些名稱是自動生成的。 – Sri 2012-07-17 19:22:27

相關問題