#javascript #forms #jsp #servlets
#javascript #формы #jsp #сервлеты
Вопрос:
У меня есть две кнопки отправки в одной форме на странице JSP, по одной из которых отображаются в форме в зависимости от случая.
Проблема в том, что одна из кнопок отправки отправляет форму, а другая нет .
вот HTML-форма
<form name="stdActivationForm" id="stdActivationForm" action="ParentManagementServlet" method="post" onsubmit="return validateStudentActivationForm()">
<input class="${isActivated? 'hideDiv':'showDiv'}" type="submit" value="confirm" name="submit" onclick="submitForm('add')"/>
<input class="${parent != null? 'showDiv':'hideDiv'}" type="submit" value="update" name="submit" onclick="submitForm('update')"/>
</form>
и вот функция javascript
function submitForm(btnName)
{
var form = document.getElementById("stdActivationForm");
if (btnName =='add')
document.form.submit();
else if(btnName =='update')
document.form.submit();
}
Комментарии:
1. это не
JAVA
скрипт. то естьjavascript
две совершенно разные вещи….2. Я не понимаю использования этой функции javascript здесь!! для чего это написано?
3. @Nael, я отредактировал это, спасибо. @Джигар Джоши, я нашел это решение в этом roseindia.net/answers/viewqa/JSP-Servlet /… , но это не работает!
4. Той же проблемы, с которой я столкнулся.
5. Поместить roseindia.net в вашем черном списке. Этот сайт загроможден плохими практиками.
Ответ №1:
Я думаю, что ваша функция JavaScript должна возвращать true. В качестве альтернативы вы можете просто удалить ссылку onclick, и она должна работать с простым типом=»отправить».
Удачи.
Комментарии:
1. Возврат
true
не является необходимым, но я согласен, что все этоonclick
совершенно не нужно. Проблема OP, вероятно, вызвана тем, что"return validateStudentActivationForm()"
возвращенfalse
.2. @BalusC, хорошо написано. Алаа, попробуйте удалить
onsubmit="return validateStudentActivationForm()"
в целях тестирования.3. @BalusC, при появлении обновления btn не вызывается функция js validateStudentActivationForm ??!!!
4. Алаа, рад помочь. Если это решило вашу проблему, примите ответ Джастина и поддержите комментарий BalusC, о, и проверьте мой обновленный ответ, чтобы вы могли проверять только обновления на данный момент.
Ответ №2:
Избавьтесь от onclick
. Здесь это не нужно. type="submit"
Уже отправляет форму. Ваша конкретная проблема, вероятно, вызвана тем, что onsubmit
из <form>
вернулся false
.
Ответ №3:
Попробуйте изменить тип ввода кнопок на "button"
и метод на:
function submitForm(btnName)
{
// skip validation for updates, remove btnName =='add' amp;amp; when it is working
if (btnName =='add' amp;amp; !validateStudentActivationForm())
{
return;
}
document.forms["stdActivationForm"].submit();
}
В любом случае, обе кнопки в настоящее время отправляются в один и тот же сервлет.