1

在我的表单中,我有一个隐藏的 FloatField:

test         = forms.FloatField( widget=forms.HiddenInput())

Django 生成以下 html:

<input type="hidden" name="test_set-0-test" id="id_test_set-0-test" />

我想用 JavaScript 默默地填充这个字段:

document.getElementById('id_test_set-0-test').value = X

但是不知道Django是否会一直生成相同的id“id_test_set-0-test”?

有没有更好的方法通过 id 在 JavaScript Django 元素中查找?

或者也许可以在 Django 后端强制执行 id ?

谢谢!

4

3 回答 3

1

您可以手动设置隐藏字段的 ID 属性。文档

test = forms.FloatField( widget=forms.HiddenInput(attrs={'id':'some-custom-test-id'}))

当然,这仅在页面上有此表单的一个实例时才有效。您也可以通过此方法手动设置类属性,然后选择所有隐藏字段并随意使用它们。

于 2012-08-31T12:48:15.723 回答
0

如果此字段是表单集中的表单的一部分,并且您使用标准 Django 呈现表单集的方式,那么是的,Django 将自动控制 ID。

除了 .之外,还有其他方法可以访问此元素id。您可以通过 css 类或它在 DOM 中的位置、这些属性的组合或元素上的其他属性来选择元素,例如data-[your-property-here]

如果 ID 属性是动态的,在表单集的情况下,我会通过它在 dom 中的位置来选择元素。

于 2012-08-31T11:46:47.587 回答
0

Django 总是生成相同的 id 不用担心

我认为这只是我知道只有jquery的更好方法,我很想获得像

 $('#id_test_set-0-test').val();

你正在做的方式是正确的

于 2012-08-31T11:44:21.677 回答