2013-06-17 6 views
2

У меня есть три переключателя на моей странице JSP. Я показываю многоэкранный выбор на основе выбранной кнопки. Но при отправке формы я получаю нулевое значение из двух полей выбора. Другая коробка выбора работает нормально.Нулевое значение при отправке формы

Может ли кто-нибудь мне помочь?

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

Ваше входное имя всегда 'name =" server "для всех входов, поэтому для вашего идентификатора. Вы должны предоставить уникальный для обоих. –

+0

@AlexandreLavoie: Я изменил идентификатор и имя на unqiue. Это не сработало. – Kalpesh

+0

Можете ли вы обновить код в своем вопросе, чтобы увидеть изменения? –

ответ

1

Как указано в комментариях, ваш атрибут name должен быть уникальным на всех входах, ortherwise, только одно значение будет принимать во внимание сервер. Кроме того, id также должен быть уникальным.

Я Recommand использовать serverNameKey как уникальный name и id:

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

Обратите внимание, что вам нужно тот же name атрибут для всех input type="radio", так что часть хорошо.


Не связано с проблемой, я также рекомендую не использовать скрипты, вы должны прочитать о JSTL. Если это новый проект, я рекомендую использовать JSF, который взял на себя JSP (это устарело).

+0

Я рассмотрю ваше предложение. Большое спасибо !! – Kalpesh

Смежные вопросы