2016-02-18 4 views
0

Итак, это мой код, и я хочу, чтобы он перенаправлял страницу, если пользователь ничего не вводил в нее, а затем нажмите «добавить». Мне нужна помощь {% расширяющий «base.html»%}Как перенаправить страницу на страницу с ошибкой

{% block content %} 

    <form> 
     <h2>Add a Food</h2> 
     <input type="text" name="food"> 
     {% if items %} 
      {% for item in items %} 
       <input type="hidden" name="food" value="{{item}}"> 
      {% endfor %} 
     {% endif %} 
     <button>Add</button> 

      <br> 
      <br> 

      <h2>Shopping List</h2> 
      <ul> 
       {% if items %} 
        {% for item in items %} 

       {% for item in items %} 
        <li>{{ item }}</li> 
       {% endfor %} 
        <h3>comments</h3> 
        {% for comement in item %} 
         <li>{{ comment }}</li> 
        {% endfor %} 
      </ul> 
    </form> 

    {% endblock %} 
+0

Почему вы хотите перенаправить его на страницу с ошибкой, вместо того чтобы предупредить пользователя о вводе чего-либо? –

+0

Ahhh это неплохая идея! Спасибо, но я хочу узнать, как это сделать. –

+0

просто установите тег id для кнопки и добавьте скрипт типа '$ ('# button'). Click (function() {...})' –

ответ

0

Перенаправление не будет на самом деле идти на странице HTML для формы (если вы излучающие HTML, это уже слишком поздно), но скорее в обработчике HTTP для цели формы. Таким образом, если ваша форма выглядит так:

<form action="/form/submission" method="post"> 

... обработчик для "/ form/submission" сделает это перенаправление. То есть, он будет испускать:

HTTP/1.1 303 See Other 
Location: http://your.server.com/path/to/error 

Вместо:

HTTP/1.1 200 OK 
Content-Type: text/html 
... (content here) ... 

Как это сделать в обработчике будет зависеть от конкретного сервера среды и рамок. Для webapp2 и Google App Engine, это будет выглядеть примерно так:

class PostHandler(webapp2.RequestHandler): 

    def post(self): 
     if missing_inputs(self.request): 
     self.response.redirect_to(new_location) 
     process_form_submission(self.request) 

Однако, чтобы обеспечить более конкретную помощь, мы должны были бы знать, на стороне сервера технологии.

Также возможно выполнить «перенаправление» на клиенте, включив JavaScript, который присваивает переменной window.location.href; однако, если у вас есть валидация в JavaScript, было бы намного больше смысла комментировать ошибку на текущей странице (например, отображать/показывать сообщение об ошибке выше формы), вместо того, чтобы переводить пользователя на совершенно другую страницу, если вы делая это в JavaScript.

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