JSP: две кнопки отправки в одной форме

#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();
}
  

В любом случае, обе кнопки в настоящее время отправляются в один и тот же сервлет.