2012-08-31 39 views
1

在我的表單中我有一個隱藏的FloatField:越來越隱蔽的Django場用JavaScript

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」?

有沒有更好的方法來找到JavaScript的Django元素的ID?

或者也許它有可能在Django後端強制ID?

Thans!

回答

0

的Django總是產生相同的ID不用擔心它

,我認爲這僅僅是更好的辦法我只知道的jQuery我很想得到這樣

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

的方式值你正在做的是對的

0

如果這個字段是formset中的一個表單的一部分,並且你使用了標準的Django方法來渲染formset,那麼是的,Django會自動控制這個ID。

id以外,還有其他方法可以訪問此元素。您可以通過css類選擇元素,或通過它在DOM中的位置,這些屬性或其他屬性的組合,如data-[your-property-here]

如果ID屬性是動態的,對於formset,我會通過它在dom中的位置選擇元素。

1

您可以手動設置隱藏字段的ID屬性。 docs

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

當然這隻能在有這種形式在頁面上的一個實例。您也可以通過此方法手動設置類屬性,然後選擇所有隱藏的字段並按照您的要求對其進行處理。