Manange "enter" event on button

Thank you @nedned. However, I want to avoid the user to have to use the mouse (or some “tab” dance) to push the data in the Input to python (my workaround today is indeed having the button).

btw, with the constraint of allowing only one callback per Output, I need to consolidate all events/inputs possibly changing an output in a single callback. But then, to identify what button (when there are multiple buttons) has been clicks in the callback is painful.
Either the callback is triggered through event (“click” on a button) but with multiple events, no clue about which event has been triggered.
Or the callback is triggered through input (“n_clicks” on a button) but then I need to check the counter against the previous counter for each button to see which button triggered the callback (and as you know, using globals is not mutli-session proof so need some serialisation to a DB, gasp!).
So, it would be nicer to have the event as an argument to the callback (with True/False) something like

import dash
from dash.dependencies import Input, State, Output, Event
import dash_core_components as dcc
import dash_html_components as html

app = dash.Dash()
app.layout = html.Div([
    html.Div(id='target'),
    dcc.Input(id='input', type='text', value=''),
    html.Button(id='submit', type='submit', children='ok'),
    html.Button(id='other-action', children='other action'),
])

@app.callback(Output('target', 'children'), [], [State('input', 'value')], [Event('submit', 'click'),Event('other-action', 'click')])
def callback(state, click_submit, click_other_action):
    if click_other_action: print('other action has been clicked")
    return "callback received value: {}".format(state)

if __name__ == '__main__':
    app.run_server(debug=True)

But I haven’t yet fully grasped the “dash way” to build my UI …