Dojo: события onblur в dojo

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():
           ....
14
задан Thomas Kremmel 11 January 2011 в 21:26
поделиться