2012-07-17 2 views
0

다음 양식이 있는데 다음 버튼을 클릭 할 때 숨겨진 양식 필드 "kpiValueType"의 값을 얻으려고합니다. 페이지 소스에서 jQuery를 사용하여 Firefox에서 숨겨진 양식 필드 값을 가져 오는 문제

<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> 

나는 경고 나 정의되지 않은 제공

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

으로 숨겨진 필드 kpiValueType의 이름을 보았다. 여기서 뭐가 잘못 됐는지 말해 줄래? 여기

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

working example을이다 : 나는 당신은 선택의 . 문자를 이스케이프 할 필요가 jQuery를 1.7과 파이어 폭스 13.0.1

답변

1

을 사용하고 있습니다.

+0

제임스 감사합니다. 하지만 이전에는 jQuery 1.4를 사용하고 있었고 동일한 코드가 정상적으로 작동했습니다. jQuery 1.7로 업그레이드 한 후 작동이 멈췄습니다. 새 버전에서 뭔가 변경 되었습니까? – Sri

+0

@Sri - 잘 모르겠지만, jQuery 버전을 바이올린으로 변경하고 이스케이프 문자를 제거하더라도 여전히 작동하지 않습니다. 이전 버전을 사용하고 있어도 탈출하는 것이 좋습니다. –

+0

제임스 inorder 내 xhtml을 만들려면 다음과 같이 입력 된 숨겨진 입력의 이름을 이스케이프해야합니다. 이 이름들은 자동 생성되기 때문에. – Sri

관련 문제