Джанго Javascript проблема при использовании форм - PullRequest
2 голосов
/ 15 июня 2011

Так что я застрял на этой проблеме в течение дня или около того, и я все еще не очень далеко. Я использую встроенный набор форм django, это позволяет отображать все предыдущие сохраненные формы, а затем одну дополнительную пустую форму. Я использую javascript (jQuery), чтобы скрыть все формы до тех пор, пока пользователь не нажмет кнопку «изменить» или «добавить новый» (тег p стилизован так, чтобы выглядеть как тег), а затем форма будет сдвинута, чтобы пользователь мог ее увидеть, а затем редактировать. ,

Проблема, с которой я сталкиваюсь, заключается в том, что форма недействительна в соответствии с моим регулярным выражением в forms.py. Форма не сохраняется, очевидно, но slideToggle закрывается. Если вы нажмете кнопку редактирования еще раз, она откроется с сообщениями об ошибках над полями, которые были введены неверно.

Что мне нужно, так это то, что если эти сообщения об ошибках присутствуют, я хочу, чтобы форма была открыта и показывала, какие поля необходимо исправить. Вот код перед отправкой формы:

<div>
  <p class="show_edit_ops button black small">Add New &raquo</p>
  <p class="show_edit_ops button black small" style="display:none;">Nevermind &laquo</p>
  <div class="formWrapperClass">

      <div class="fieldWrapper">
    <div class="form_errors"></div>
    <p class="field_label"><label for="id_location_set-0-street">Street</label>:</p>
    <p class="form_field"><input type="text" name="location_set-0-street" id="id_location_set-0-street" /></p>
    <p class="field_help_text">Enter your residence number and street</p>

      </div>

      <div class="fieldWrapper">
    <div class="form_errors"></div>
    <p class="field_label"><label for="id_location_set-0-street2">Street2</label>:</p>
    <p class="form_field"><input type="text" name="location_set-0-street2" id="id_location_set-0-street2" /></p>
    <p class="field_help_text">Enter your apartment number or P.O. box</p>
      </div>

      <div class="fieldWrapper">
    <div class="form_errors"></div>
    <p class="field_label"><label for="id_location_set-0-city">City</label>:</p>
    <p class="form_field"><input type="text" name="location_set-0-city" id="id_location_set-0-city" /></p>
    <p class="field_help_text">Enter your city</p>
      </div>

И форма продолжается, но вы поняли идею. И это один из полей fieldWrapper после отправки с неправильным вводом:

<div class="fieldWrapper">
    <div class="form_errors"><ul class="errorlist"><li>You must enter a street</li></ul></div>
    <p class="field_label"><label for="id_location_set-0-street">Street</label>:</p>
    <p class="form_field"><input type="text" name="location_set-0-street" id="id_location_set-0-street" /></p>
    <p class="field_help_text">Enter your residence number and street</p>

      </div>

Я перепробовал много вещей, чтобы проверить, существует ли список ошибок, и если да, то я могу стилизовать эту форму, чтобы она открывалась после неудачной отправки. Я пытался найти и детей довольно широко, но, возможно, неправильно, так:

if($(".form_errors").find($(".errorlist")) == true){
    document.write("error!");
    }

Но без удачи. Если я уберу == true, то получу 'error!' на каждой странице моего сайта. Я сбит с толку, поэтому любая помощь будет отличной. Все, что мне действительно нужно, это правильная проверка, чтобы увидеть, существует ли список ошибок, я уверен, что смогу принять его после этого.

Спасибо !!

1 Ответ

0 голосов
/ 15 июня 2011

Попробуйте это:

if($(".form_errors").find($(".errorlist")).length){
...