перенаправление на другую страницу с помощью onsubmit или action?

#javascript #html #jsp

#javascript #HTML #jsp

Вопрос:

Я пытаюсь перенаправить на другую страницу при возникновении конкретного события…Это мой код .. но он не перенаправляет на другую страницу, но код JavaScript работает…

 <form class="list-group-item"  method="get" onsubmit="action='Search.jsp'; myFunction('name');return false;"  >
  <input type="hidden" name="item" value="<%=1%>"> 
  <i class="fa fa-arrow-circle-right fa-fw "></i> <span onsubmit="action='Search.jsp'" onclick="action='Search.jsp';document.getElementById('div1').style.display = 'block';setValue('Subject')"  style="margin-left:1%">Subject </span>    
  <span class=" text-muted small"  onclick="document.getElementById('div1').style.display = 'block';setValue('Subject And')"  style="margin-left:40%"><em> And <i class="fa  fa-angle-down "></i></em>
  </span>
</form>
  

Сначала я попробовал action=»search.jsp» вне onsubmit, но это не сработало..Я новичок во всем этом, и я не знаю, что делать?

Ответ №1:

Добавьте кнопку внутри <form> тега

 <input type="submit" value="Submit">
  

Добавить атрибут действия в тег формы

 action="Search.jsp"
  

Всякий раз, когда вы нажимаете Submit кнопку, страница будет перенаправлена на Search.jsp

Комментарии:

1. Сначала я попробовал action=»search.jsp» вне onsbmit, но это не сработало.

2. Вам необходимо отправить форму

Ответ №2:

1) Если вы просто хотите перенаправить ее на Search.jsp после отправки формы, удалите весь дерьмовый JS-код из своей формы и добавьте простой action атрибут form tag .
2) Action attribute ведет себя как перенаправление, если вы отправляете форму.
3) Написание JS-кода в HTML-тегах — плохое соглашение. Всегда пишите код JS в <script>..</script> блоках или другой JS file , а затем включайте его.

 <form class="list-group-item" method="get" action="Search.jsp"  >
    <input type="hidden" name="item" value="<%=1%>">
    ...
    ...
</form>
  

или

Вы можете ajaxify использовать свой код (то есть отправить форму через ajax, а затем перенаправить).

 <form class="list-group-item" method="get" action="Search.jsp" name="search" >
    <input type="hidden" name="item" value="<%=1%>">
    ...
    ...
</form>

<script>
$(function(ev){
    ev.preventDefault();

    $("form:[name='search']").on("submit", function(){
        var form = $(this);
        var data = form.serialize();
        var action = form.attr("action");

        $.get(action, data)
        window.location.replace("http://stackoverflow.com");
    });
});
</script>
  

Ответ №3:

Просто return true из myFunction и используйте <input type="submit"> для отправки формы.

Пример кода: (читайте встроенные комментарии)

 <script type="text/javascript">
    function myFunction() {
        /* return false in case of validation fail */
        alert("Hi");
        return true;
    }
</script>

<form class="list-group-item" action="Search.jsp" method="get"
      onsubmit="return myFunction()">
    <!-- other fields -->
    <input type="submit" value="Submit" />
</form>