Доберитесь , Автоматически работает от Mark Russinovich, парня Sysinternals, который обнаружил Руткит Sony... Лучшее программное обеспечение, которое я когда-либо использовал для чистки вещей, которые начинают автоматически.
Если вы хотите автоматизировать этот процесс , вы можете создать собственный виджет для поля. В классе виджета вы определите метод рендеринга таким образом, чтобы он также возвращал код привязки события.
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
Я бы порекомендовал использовать библиотеку JavaScript, такую как jQuery. Здесь - ссылка на привязку события щелчка в jQuery. Поскольку Django называет все поля ввода, вы можете подключить my_field_name
в вашей форме Django к событию щелчка следующим образом:
$("form input[name='my_field_name']").click(function () {
// Handle the click event here
});
What I do for that is :
class MyForm(forms.Form):
stuff = forms.ChoiceField(
[('a','A'),('b','B')],
widget = forms.Select(attrs = {
'onclick' : "alert('foo !');",
}
)
Используя YUI , вы можете сделать это следующим образом:
YAHOO.util.Event.addListener(id_myField, "click", myClickEventHandler, myOptionalData);
См. Также YUI 2: Утилита обработки событий
Я предпочитаю использовать библиотеку JavaScript, так как благодаря этому JS-код на стороне браузера хорошо отделен от Django на стороне сервера.