这就是我要找的东西。在我的表单中,我有三个字段,都是 CharFields。这些是姓名,姓氏和用户名。用户名应设置为姓名和姓氏的总和,因此对于姓名 = Joe、姓氏 = Black、用户名 = Joe Black。
显示表单时,所有字段都为空。我希望它在我将数据写入姓名或姓氏时自动填充用户名。这样做的原因是我不必填写用户名字段,但是当我愿意时,我可以将其设置为不同于姓名+姓氏。
不使用jQuery可以吗?如果是这样,有什么好的教程吗?
这就是我要找的东西。在我的表单中,我有三个字段,都是 CharFields。这些是姓名,姓氏和用户名。用户名应设置为姓名和姓氏的总和,因此对于姓名 = Joe、姓氏 = Black、用户名 = Joe Black。
显示表单时,所有字段都为空。我希望它在我将数据写入姓名或姓氏时自动填充用户名。这样做的原因是我不必填写用户名字段,但是当我愿意时,我可以将其设置为不同于姓名+姓氏。
不使用jQuery可以吗?如果是这样,有什么好的教程吗?
javascript
<script type="text/javascript" charset="utf-8">
function updateUsername(){
first = document.getElementById("first").value;
last = document.getElementById("last").value;
document.getElementById("username").value = first+" "+last;
}
</script>
那么您需要提供 3 个输入字段 ID。
这是一个例子
<input type="text" name="some_name" value="" id="first" onkeyup="updateUsername();">
<input type="text" name="some_name" value="" id="last" onkeyup="updateUsername();">
<input type="text" name="some_name" value="" id="username">
基本上,当 #first 和 #last 字段被输入时,它运行 updateUsername() 函数,该函数获取它们的值并将 #username 的值更改为它们。
编辑
如果您想使用 django 执行此操作,请编辑您的模型并覆盖保存方法。
def save(self):
if not self.id:
self.username = self.first + self.last
super(MODLE_NAME, self).save()
这将做的是当您使用 save() 方法时,它将获取它的第一个和最后一个属性并更新用户名值并保存它。