Кнопка календаря ведет себя плохо - PullRequest
0 голосов
/ 20 октября 2011

Это задание начального уровня. Я пытаюсь реализовать виджет календаря в Django, используя следующие пример: http://djangosnippets.org/snippets/1629/

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

Что мне действительно нужно, так это ЛЕГКИЙ календарь, чтобы идти вместе с ModelForm. Я не так много заботитесь об использовании JSCal2, как и любой календарь.

Почему моя кнопка отправляет мою форму? Как мне заставить его отображать виджет и работать правильно? Любые другие предложения, чтобы легко получить рабочий календарь?

------------- widgets.py ---------------------

calbtn = u"""<input id="calendar-inputField" /><button id="calendar-trigger"> <img src="%simages/calbutton.gif" alt="calendar" id="%s_btn"
style="cursor: pointer; height="20"; width="20"; border: 1px solid #8888aa;" title="Select date and
time"
            onmouseover="this.style.background='#444444';"
            onmouseout="this.style.background=''" />
</button>
<script type="text/javascript">
    Calendar.setup({
        trigger    : "calendar-trigger",
        inputField : "calendar-inputField"
        inputField     :    "%s",
        ifFormat       :    "%s",
        button         :    "%s_btn",
        singleClick    :    true,
        showsTime      :    true
        onSelect   : function() { this.hide() }
    });
</script>"""

class DateTimeWidget(forms.widgets.TextInput):
    dformat = '%Y-%m-%d %H:%M'
    def render(self, name, value, attrs=None):
        # Same as the example   ...

    def value_from_datadict(self, data, files, name):
        # Same as the example   ...

    class Media:
        css = {            
            'all': ('/static/calendar/gold.css', )    
        }
        js = ('/static/calendar/jscal2.js',
              '/static/calendar/en.js',
              )

------------- forms.py ----------------

class CustMainForm(ModelForm):
  lastName = forms.CharField(max_length=20)
  firstName = forms.CharField(max_length=20)

  class Meta:
      model = Customer
      fields = ('notes', 'saleDate' )
      widgets = {
          'notes': Textarea(attrs={'cols': 80, 'rows': 20}),
          'saleDate' : DateTimeWidget(),  # shown above
      }

1 Ответ

0 голосов
/ 20 октября 2011

Ваша кнопка, вероятно, просто нуждается в атрибуте типа, поэтому она не работает как кнопка отправки.Во всех браузерах, кроме IE, теги кнопок имеют тип по умолчанию «submit».

Как запретить кнопкам отправлять формы

http://www.w3schools.com/tags/tag_button.asp

...