使用JavaScript获取隐藏的Django字段

getting hidden Django field with JavaScript

本文关键字:Django 字段 隐藏 JavaScript 获取 使用      更新时间:2023-09-26

在我的表单中,我有一个隐藏的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_testronget-0-test"?

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

或者可能在Django后端强制执行id?

谢谢!

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

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

当然,只有当页面上有一个该表单的实例时,这才有效。你也可以通过这个方法手动设置一个类属性,然后选择所有隐藏的字段,并根据自己的意愿进行处理。

Django总是生成相同的id别担心

我认为这是更好的方式,我只知道jquery,我想得到像一样的价值

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

你所做的是正确的

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

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

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