javascript - 如何将焦点设置到 Django 表单元素的 CharField

标签 javascript jquery python django

我的登录页面使用 Django 的表单。 我想在页面加载时将焦点设置到第一个文本字段(用户名)。我尝试按如下方式使用 Jquery,但没有得到结果。

forms.py:
from django import forms
class LoginForm(forms.Form):
    userName = forms.EmailField(max_length=25)     
    password = forms.CharField( widget=forms.PasswordInput, label="password" )

登录.html

% block headextra %}
    <script type="text/javascript">
        $(document).ready(function() {
             window.onload = function() {
             $("#id_username").focus();
             // alert('test') if I add this line its works
             //  setting focus to a textbox which added to template page direcltly using html tag the focus() method works well
            };  
        }); 
        </script>       
    {% endblock %}

{% block content %} 
<form method = "POST" action ="/login/">{% csrf_token %}
<table align ="center">
    {{ form.as_table }}
<tr><td></td></tr>
<tr><td><input type="submit" value="Submit"></td></tr>
</table>
</from>

最佳答案

正确的 Django 回答这个问题的方式如下(因为它不依赖于是否启用 js):

from django import forms

class LoginForm(forms.Form):
    user_name = forms.EmailField(max_length=25)     
    password = forms.CharField( widget=forms.PasswordInput, label="password" )

    def __init__(self):
        self.fields['user_name'].widget.attrs.update({'autofocus': 'autofocus'
            'required': 'required', 'placeholder': 'User Name'})
        self.fields['password'].widget.attrs.update({
            'required': 'required', 'placeholder': 'Password'})

另外,郑重声明,我们避免对对象属性使用驼峰命名法。干杯!

关于javascript - 如何将焦点设置到 Django 表单元素的 CharField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8255346/

相关文章:

jquery - 在ios设备上禁用启动屏幕cordova

javascript - Jquery 将类设置为除具有特定类的元素+子元素/子元素之外的所有元素

python - 如何使用 python selenium 包打开 chrome webdriver,登录默认用户?

python - 使用 python 对 json 数据进行数据预处理(Jupyter Notebook)

Python psycopg2 设置约束可延迟

javascript - Jasmine jQuery 循环单元测试

javascript - 如何在自定义环回验证中提供动态消息?

javascript - 如何阻止一行 JavaScript 在 IE 中运行(但让它在其他浏览器中运行)?

c# - 如何在 ASPX 中仅使用原始页面请求自动完成?

javascript - 为什么使用循环动态分配的 id 仅显示第一个分配? JavaScript、AJAX 和 JSTL