Как вызвать метод onchange при заполнении поля из JavaScript?

Проблема очень проста. Я использую определенный API, который вызывается, когда я нажимаю кнопку, а некоторые поля заполняются из созданного мной виджета.

Я использую этот виджет в нескольких местах в моей системе

Проблема в том, что когда эти поля заполнены, мне нужно

@api.onchange('exmplple')

способ вызвать их, но это не так (я бы сказал, что это ошибка).

Какой будет обходной путь или решение для запуска этого метода, когда эти поля изменяются всякий раз, когда работает мой виджет?

Обновить:

Извините за путаницу, вызванную моим вопросом. Я попытаюсь объяснить, о чем именно я думал и почему я до сих пор пробовал только вещи на стороне сервера. Проблема в том, что в любой другой ситуации код Python api.onechange будет работать совершенно нормально.

    @api.onchange
    def do_smth_when_country_changes(self):
            if country_id = 133
                    self.lang = 'pl_PL'
            elif:
                    .......more ifs

Но у меня есть поля, которые заполнены из карт Google (код JavaScript, который я написал).

            <field name='autocomplete' widget='gmap_autocomplete' country_id='country_id'>
            <field name='country_id'>

Здесь, когда я ищу адрес с полем автозаполнения и нажимаю на него, поле country_id будет заполнено страной. И также есть некоторые другие поля, которые должны изменить значение при каждом изменении country_id (например, поле res.partner lang).

    <field name='lang'/>

Поскольку метод Python onchange не вызывает поле country_id, я подумал, что JavaScript, вероятно, будет единственным, что решит мою проблему. Поэтому я хочу получить доступ к полю coutry_id в конкретном представлении формы (скажем, только в view_partner_form), а также при изменении значения доступа поля запаздывания и его изменении.

1 ответ

Jquery on метод может привязать событие к вашему селектору:

 $(selector).on(event,function)

например:

('#id').on('change',function(){
   // do your logic....
});
Другие вопросы по тегам