簡體   English   中英

未捕獲的 TypeError:myFormRef.submit 不是函數,我試圖讓 React 中的文本區域使用 Enter 鍵提交值

[英]Uncaught TypeError: myFormRef.submit is not a function, I tried to make my textarea in React submit the value with the key Enter

我試圖讓我在 React 中的 textarea 輸入使用 Enter 鍵提交值,但我收到了這個錯誤,我不知道為什么會這樣:

錯誤信息

1個

這是我抓住關鍵的功能:

const myFormRef = useRef();


const onEnterPress = (e) => {
        if(e.keyCode == 13 && e.shiftKey == false) {
            e.preventDefault();
            console.log(myFormRef.submit());
        }
 }

這是帶有文本區域的表單:

 <Form id="myForm" ref={myFormRef} onSubmit={sendMessege}>
                <TextareaAutosize
                    className='text_input'
                    placeholder='Digite algo aqui'
                    type="text"
                    value={formValue}
                    onChange={(e) => setFormValue(e.target.value)}
                    disabled={!user}
                    minRows={3}
                    maxRows={6}
                    onKeyDown={onEnterPress}
                />
 </Form>

有人可以幫助我嗎?

您需要從參考中獲取current

請試試:

console.log(myFormRef?.current?.submit());

React:如何提交表單<textarea>&lt;i&gt;with enter key and without a submit button with React Hooks?&lt;/div&gt;&lt;/i&gt;&lt;b&gt;帶有回車鍵且沒有帶有 React Hooks 的提交按鈕?&lt;/div&gt;&lt;/b&gt;</textarea><div id="text_translate"><p> Halo 伙計們,我對反應很陌生,我想提交一個只有文本區域的表單,並按下enter鍵。 我遵循了一些 SO 問題,但仍然沒有運氣,因為它沒有被提交。 我還想在提交后清除文本區域。 我怎樣才能用下面的代碼做到這一點?</p><p> 這是我目前擁有的代碼。</p><pre> const { register, handleSubmit, control, errors } = useForm(); const CommentOnSubmit = (data) =&gt; { let formData = new FormData(); formData.append('content', data.content); formData.append('user', user?.id); axiosInstance.post(`api/blogs/` + slug + `/comment/`, formData); }; // const commentEnterSubmit = (e) =&gt; { // if(e.key === 'Enter' &amp;&amp; e.shiftKey == false) { // return( // e.preventDefault(), // CommentOnSubmit() // ) // } // } &lt;form noValidate onSubmit={handleSubmit(CommentOnSubmit)}&gt; &lt;div className="post_comment_input"&gt; &lt;textarea type="text" placeholder="Write a comment..." name="content" ref={register({required: true, maxLength: 1000})} /&gt; &lt;/div&gt; &lt;div className="comment_post_button"&gt; &lt;Button type="submit" variant="contained" color="primary"&gt;comment&lt;/Button&gt; &lt;/div&gt; &lt;/form&gt;</pre><p> 請幫忙。</p><p> 非常感謝。</p></div>

[英]React: How to submit a form with <textarea> with enter key and without a submit button with React Hooks?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 React:如何提交表單<textarea>&lt;i&gt;with enter key and without a submit button with React Hooks?&lt;/div&gt;&lt;/i&gt;&lt;b&gt;帶有回車鍵且沒有帶有 React Hooks 的提交按鈕?&lt;/div&gt;&lt;/b&gt;</textarea><div id="text_translate"><p> Halo 伙計們,我對反應很陌生,我想提交一個只有文本區域的表單,並按下enter鍵。 我遵循了一些 SO 問題,但仍然沒有運氣,因為它沒有被提交。 我還想在提交后清除文本區域。 我怎樣才能用下面的代碼做到這一點?</p><p> 這是我目前擁有的代碼。</p><pre> const { register, handleSubmit, control, errors } = useForm(); const CommentOnSubmit = (data) =&gt; { let formData = new FormData(); formData.append('content', data.content); formData.append('user', user?.id); axiosInstance.post(`api/blogs/` + slug + `/comment/`, formData); }; // const commentEnterSubmit = (e) =&gt; { // if(e.key === 'Enter' &amp;&amp; e.shiftKey == false) { // return( // e.preventDefault(), // CommentOnSubmit() // ) // } // } &lt;form noValidate onSubmit={handleSubmit(CommentOnSubmit)}&gt; &lt;div className="post_comment_input"&gt; &lt;textarea type="text" placeholder="Write a comment..." name="content" ref={register({required: true, maxLength: 1000})} /&gt; &lt;/div&gt; &lt;div className="comment_post_button"&gt; &lt;Button type="submit" variant="contained" color="primary"&gt;comment&lt;/Button&gt; &lt;/div&gt; &lt;/form&gt;</pre><p> 請幫忙。</p><p> 非常感謝。</p></div> 未捕獲的類型錯誤:jQuery(...).submit(...).then 不是 function 在文本區域上按Enter鍵時如何提交表單? 通過Enter鍵提交表單,但javascript中的textarea除外? 提交textarea表單,而沒有帶有Enter鍵的提交按鈕 JQUERY textarea輸入提交 添加輸入以提交文本區域 無法使“Enter”鍵調用函數而不是提交頁面 我該如何使Enter Key將此內容提交到數據庫? 我想取 textarea 的值並在提交時顯示值(反應)
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM