На моем веб-приложении у меня есть форма с двумя <select>
. Один представляет месяц и другой год.Проверить значения перед отправкой документа document.form.action
<form id="reportform" target="_blank">
<table cellpadding="3" cellspacing="14">
<thead>
<th class="report" colspan="2"><spring:message code="label.month"/></th>
<th class="report" colspan="2"><spring:message code="label.year" /></th>
<th colspan="2"></th>
</thead>
<tbody>
<tr>
<td>
<input name="centerId" value="${center.centerId}" type="hidden">
</td>
<td class="date">
<select class="select-input-month-report" id="select-input-month" name="month">
<option selected="selected" value="0"><spring:message code="label.select" /></option>
<option value="1"><spring:message code="label.january" /></option>
<option value="2"><spring:message code="label.february" /></option>
<option value="3"><spring:message code="label.march" /></option>
<option value="4"><spring:message code="label.april" /></option>
<option value="5"><spring:message code="label.may" /></option>
<option value="6"><spring:message code="label.june" /></option>
<option value="7"><spring:message code="label.july" /></option>
<option value="8"><spring:message code="label.august" /></option>
<option value="9"><spring:message code="label.september" /></option>
<option value="10"><spring:message code="label.october" /></option>
<option value="11"><spring:message code="label.november" /></option>
<option value="12"><spring:message code="label.december" /></option>
</select>
</td>
<td></td>
<td class="date">
<select class="select-input-year-report" id="select-input-year" name="year">
<option value="0" selected="selected"><spring:message code="label.select" /></option>
<option value="2013">2013</option>
<option value="2014">2014</option>
</select>
</td>
<td align="right">
<input id="go" class="go" type="submit" value="Report">
</td>
</tr>
</tbody>
</table>
</form>
На стороне сервера PDF генерируется (с помощью iTextPdf
) в соответствии с месяцем и годом, выбранного на пользовательском интерфейсе.
Когда месяц и год верны, PDF создается правильно, но когда пользователь не выбирает правильный месяц и год (один из них равен нулю), я получаю сообщение об ошибке в моем конце.
Я хотел бы проверить, что месяц или год отличаются от 0 кодом javascript и сведены к минимуму изменения в моем @Controller
. Но я не могу проверить значения месяца и года и вызвать фоновое обслуживание, используя document.reportform.action
.
@Controller
public class ReportController {
@RequestMapping(value="/report.pdf", method=RequestMethod.POST)
public ModelAndView getPdfReport(@ModelAttribute ReportRequest request) throws DAOException {
...
return mav;
}
}
Звоню обслуживание, как это:
$(function(){
$('form').submit(function(){
var zeros = checkDate();
if(zeros == '0'){
document.reportform.action = "/report.pdf";
}
});
});
function checkDate(){
var zeros = 0;
if(document.getElementById("select-input-month").value == 0){
zeros++;
}
if(document.getElementById("select-input-year").value == 0){
zeros++;
}
return zeros;
}
Помощь будет оценена.
Update: я получаю Javascript ошибки: document.reportform.action = "/report.pdf" not defined.
Это не хорошо идея с проверкой запуска с только javascript. Вы тоже должны это делать в контроллере. – dabadaba
Вы уже используете jQuery, тогда почему бы вам не использовать '$ (" # select-input-month "). Val()'? –
Вы на самом деле не говорите, что с ним не так. Можете ли вы объяснить, что он делает или не делает? – Archer