I have a text area and a download button based on the input for the text area. Default streamlit behavior is for the user to press ctrl/cmd + enter or to focus on a different element from the textarea.
The goal is to have a button that is disabled until any character is in the textarea element. Currently, this only works with ctrl/cmd+enter to have the disable property changed to enabled for the button.
With a standard st.button, I can write a components hook that sees events triggered by individual keystrokes. However, st.download_button does not catch this.
You can use the disabled parameter for either st.button or st.download_button in order to disable the button until the text has been entered into the st.text_area widget.
An example of this in use is the following code:
where the st.chat_input is disabled when st.text_input is blank.
I appreciate the input. In this case, text_area doesnโt capture input text until control/command + enter is pressed, or the text area widget is no longer focused.
My workaround works for a standard button, but something is preventing the download_button widget from accessing.
No worries, Iโve decided to use two buttons as a solution to continue moving forward and to figure out how to bridge our custom React widget component library.
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking โAccept allโ, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.