I иметь настройку формы с помощью dojo 1.5. Я использую dijit.form.ComboBox и dijit.form.TextBox
Combobox имеет такие значения, как «автомобиль», «байк», «мотоцикл», а текстовое поле должно быть прилагательным к Combobox. TextBox В Combobox есть такие значения, как «автомобиль», «байк», «мотоцикл», а текстовое поле должно быть прилагательным к ...
У меня есть форма, настроенная с помощью dojo 1.5. Я использую dijit.form.ComboBox и dijit.form.TextBox
Combobox имеет такие значения, как «автомобиль», «байк», «мотоцикл», а текстовое поле должно быть прилагательным к Combobox. TextBox В Combobox есть такие значения, как «автомобиль», «байк», «мотоцикл», а текстовое поле должно быть прилагательным к ...
У меня есть форма, настроенная с помощью dojo 1.5. Я использую dijit.form.ComboBox и dijit.form.TextBox
Combobox имеет такие значения, как «автомобиль», «байк», «мотоцикл», а текстовое поле должно быть прилагательным к Combobox. Таким образом, не имеет значения, что находится в Combobox, но если ComboBox имеет значение, тогда что-то ДОЛЖНО быть заполнено в TextBox. При желании, если в ComboBox ничего нет, тогда ничего не может быть и в TextBox, и это нормально. Фактически, если чего-то нет в Combobox, тогда ничего НЕ ДОЛЖНО быть в текстовом поле.
При обычном кодировании я бы просто использовал событие onBlur в текстовом поле, чтобы перейти к функции, которая проверяет, есть ли в ComboBox ценность. Я вижу в додзё, что это не работает ... Ниже приведен пример кода ...
Vehicle:
<input dojoType="dijit.form.ComboBox"
store="xvarStore"
value=""
searchAttr="name"
name="vehicle_1"
id="vehicle_1"
/>
Descriptor:
<input type="text"
dojoType="dijit.form.TextBox"
value=""
class=lighttext
style="width:350px;height:19px"
id="filter_value_1"
name="filter_value_1"
/>
Моя первоначальная попытка заключалась в том, чтобы добавить onBlur в тег дескриптора, но обнаружил, что это не работает.
Как Dojo справляется с этим? Это через параметр dojo.connect? Несмотря на то, что в приведенном выше примере поле со списком имеет идентификатор "vehicle_1", а текстовое поле - " Моя проблема в том, что если форма не проверяется, форма отображается повторно, но я потерял значение в fieldA.
Я попытался сбросить cleaned_data ['fieldA'], но это не сработало. Есть идеи, что изменить?
Forms.py
class MyModelUpdateForm(forms.ModelForm):
class Meta:
model = MyModel
def __init__(self, *args, **kwargs):
super(MyModelUpdateForm, self).__init__(*args, **kwargs)
self.fields['fieldA'].widget.attrs['readonly'] = True
self.fields['fieldA'].widget.attrs['disabled'] = True
def clean(self):
cleaned_data = self.cleaned_data
fieldA= self.instance.fieldA
fieldB = cleaned_data.get("fieldB")
if MyModel.objects.filter(fieldA=fieldA, fieldB=fieldB).count() > 0:
#try to reset fieldA, since it is not passed through, since it is disabled
cleaned_data['fieldA'] = fieldA.pk #does not work
raise forms.ValidationError('some unique validation error')
return cleaned_data
Views.py:
myModelobject = get_object_or_404(MyModel.objects, pk=mymodel_id)
if request.method == 'POST':
model_form = MyModelUpdateForm(request.POST, instance=myModelobject )
if model_form .is_valid():
....