ページの読み込み時に依存するドロップダウンを「読み込む」方法は?
依存するドロップダウンのあるフォームがあります。このセカンダリドロップダウンは、選択されたプライマリオプションにセカンダリオプションがない場合、およびページが最初に読み込まれたときに非表示になります。フォームが送信されると、最初のフィールドのみがクリアされます。これは、ほとんどの場合ドロップダウンが同じであるためです。ただし、スクリプトはプライマリドロップダウンに変更があった場合は常に機能します。変更を構成するのではなく、選択/送信されたオプションをプライマリドロップダウンに保持し、選択されたプライマリオプションにセカンダリオプションがある場合でも、空のセカンダリドロップダウンを表示します。私はJSのほとんどを、チュートリアルのドロップダウンからよく知りません。より視覚的に理解するために: これは、ページが最初にロードされたときのフォームです セカンダリオプションがあるオプションを選択すると、もう1つのドロップダウンが表示されます ステーションを選択して送信すると、従業員番号はクリアされますが、他の2つは残っているはずですが、送信時にページがリロードされると、次のようになり、ステーションがないため、ステーションはステーションによってクリアされました技術的に。駅の整理についてはあまり気にしていませんが、空にしてはいけない空のドロップダウンがないことのほうが重要です。 フォームに残ったデータを見ると、ドロップダウンから別のオプションを選択するまで依存ドロップダウンが読み込まれず、ボックスアセンブリオプションを再び表示できるようにしたい場合は、作業領域のみが残りました。 、別のオプションをクリックしてから、(たとえば)ボックスアセンブリに戻る必要があります。 この問題を解決するにはどうすればよいですか?残されたオプションがトリガーされているかどうかに関係なく、セカンダリオプションがあるかどうかをチェックするように、JavaScriptが最初にロードするように強制する方法はありますか? forms.py class WarehouseForm(AppsModelForm): class Meta: model = EmployeeWorkAreaLog widgets = { 'employee_number': ForeignKeyRawIdWidget(EmployeeWorkAreaLog._meta.get_field('employee_number').remote_field, site, attrs={'id':'employee_number_field'}), } fields = ('employee_number', 'work_area', 'station_number') def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['station_number'].queryset = Station.objects.none() if 'work_area' in self.data: try: work_area_id = int(self.data.get('work_area')) self.fields['station_number'].queryset = Station.objects.filter(work_area_id=work_area_id).order_by('name') except (ValueError, …