2

JSP ページに 3 つのラジオ ボタンがあります。選択したラジオボタンに基づいてマルチセレクトボックスを表示しています。しかし、フォームの送信中に、2 つの選択ボックスから null 値を取得しています。他のセレクトボックスは正常に動作しています。

誰でも私を助けることができますか?

<script type="text/javascript">
$(document).ready(function(){
$('.show').hide();
$("input[name$='application']").click(function() {
var test = $(this).val();
$("div.show").hide();
$('#showemma').hide();
$('#showdmfota').hide();
$('#showuep').hide();
$("#show" + test).show();
   });
});
</script>
<title>Add Config Changes</title>
</head>
<body>
<%
    Server env = new Server();
    Map<String, List<String>> map = env.getServer();
    Properties property = new Properties();
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    property.load(classLoader.getResourceAsStream("error.properties"));
%>
<h3> Add Configuration Change</h3> <br><br>
<form action="_config" method="post">
<table align="center" id ="login">
    <tr>
        <td>Application</td>
            <td>
            <div class="radio" style="font-size:12px;">
                <label><input type="radio" name="application" id="fota" value="dmfota"> DMFOTA</label>
                <label><input type="radio" name="application" id="uep" value="uep"> UEP</label>
                <label><input type="radio" name="application" id="emma" value="emma"> EMMA</label>
                </div>
            </td>
        <td id="error"><p id ="applicationError"><%=property.getProperty("applicationError") %></p></td>
    </tr>           

    <% for (String serverNamekey : map.keySet()){%>
    <tr id="show<%= serverNamekey %>" class="show" style='display:none'>

        <td>Server</td>
            <td>
            <% List<String> servers = map.get(serverNamekey); %>
                <select name="server" id="server" multiple="multiple" style="width:150px; height: 150px;">
                    <%for (String serverName : servers){  %>
                        <option value="<%=serverName%>"><%=serverName%></option>
                    <%} %>
                </select> 
            </td> 
            <td id="error"><p id ="serverError"><%=property.getProperty("serverError") %></p></td>
    </tr>
            <%} %>
    <tr>
        <td colspan =2><input type="submit" value="Add Change Log"   id="configSubmit" class="submit"></td>
    </tr>
</table>
</form> 
</body>
</html>

</table>
</form> 
</body>
4

1 に答える 1

1

コメントに記載されているように、name属性はすべての入力で一意である必要があります。そうでない場合、サーバーは 1 つの値のみを考慮します。さらに、id一意でなければなりません。

serverNameKeyを一意のnameandとして使用することをお勧めしますid

<select id="select-<%= serverNamekey %>" name="<%= serverNamekey %>" ...

nameall に同じ属性が必要なinput type="radio"ので、その部分は問題ないことに注意してください。


問題とは関係ありませんが、スクリプトレットを使用しないことをお勧めします。JSTL について読む必要があります。新しいプロジェクトであれば、JSP を引き継いだ JSF を使用することをお勧めします (非推奨)。

于 2013-06-25T12:14:43.793 に答える