Как установить обработчик событий в поле ввода формы Django

Доберитесь , Автоматически работает от Mark Russinovich, парня Sysinternals, который обнаружил Руткит Sony... Лучшее программное обеспечение, которое я когда-либо использовал для чистки вещей, которые начинают автоматически.

7
задан Peter Mortensen 12 April 2010 в 14:16
поделиться

4 ответа

Если вы хотите автоматизировать этот процесс , вы можете создать собственный виджет для поля. В классе виджета вы определите метод рендеринга таким образом, чтобы он также возвращал код привязки события.

class CustomWidget(forms.TextInput):

    class Media:
        #js here
        js = ('js/my_js.js',)

    def render(self, name, value, attrs = None)
         output = super(CustomWidget, self).render(name, value, attrs)
         #do what you want to do here
         output += ...
         return output
2
ответ дан 6 December 2019 в 08:15
поделиться

Я бы порекомендовал использовать библиотеку JavaScript, такую ​​как jQuery. Здесь - ссылка на привязку события щелчка в jQuery. Поскольку Django называет все поля ввода, вы можете подключить my_field_name в вашей форме Django к событию щелчка следующим образом:

$("form input[name='my_field_name']").click(function () { 
    // Handle the click event here
});
3
ответ дан 6 December 2019 в 08:15
поделиться

What I do for that is :

class MyForm(forms.Form):
    stuff = forms.ChoiceField(
        [('a','A'),('b','B')],
        widget = forms.Select(attrs = {
            'onclick' : "alert('foo !');",
            }
        )
16
ответ дан 6 December 2019 в 08:15
поделиться

Используя YUI , вы можете сделать это следующим образом:

YAHOO.util.Event.addListener(id_myField, "click", myClickEventHandler, myOptionalData);

См. Также YUI 2: Утилита обработки событий

Я предпочитаю использовать библиотеку JavaScript, так как благодаря этому JS-код на стороне браузера хорошо отделен от Django на стороне сервера.

1
ответ дан 6 December 2019 в 08:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: