0

次のフォームがあり、次のボタンをクリックしたときに非表示のフォームフィールド「kpiValueType」の値を取得しようとしています。

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

アラートは私に未定義を与えます。ここで何が悪いのか教えていただけますか?jQuery1.7とFirefox13.0.1を使用しています

4

1 に答える 1

1

.セレクターの文字をエスケープする必要があります。

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

これが実際のです。

于 2012-07-17T14:39:54.190 に答える