Below code is working fine with button that is created in this code .but i also want to use the enter button to do same work .
<div className="input" >
<input
type="text"
placeholder="Type something..."
id="myinput"
onChange={(e) => setText(e.target.value)}
value={text}
/>
<div className="send">
{/* <img src={Attach} alt="attach" /> */}
<input
type="file"
style={{ display: "none" }}
id="file"
onChange={(e) => setImg(e.target.files[0])}
/>
<label htmlFor="file">
<img src={Attach} alt="img" />
</label>
<button onClick={handleSend}>Send</button>
</div>
</div>
how to achieve that?
CodePudding user response:
Simply you can warp the input with the form
tag and you can use the onSubmit
function, In that case, onClick
and press enter
both will work.
const handleOnSubmit = () => {
// write your function here
}
<form onSubmit={handleOnSubmit} className="input">
<input
type="text"
placeholder="Type something..."
id="myinput"
onChange={(e) => setText(e.target.value)}
value={text}
/>
<div className="send">
{/* <img src={Attach} alt="attach" /> */}
<input
type="file"
style={{ display: 'none' }}
id="file"
onChange={(e) => setImg(e.target.files[0])}
/>
<label htmlFor="file">
<img src={Attach} alt="img" />
</label>
<button type="submit">Send</button>
</div>
</form>
CodePudding user response:
Basically, there can be many ways to do so, you can use onKeyPress attribute to check if the pressed key is "Enter" and then run the same "handleSend" function.
<button
onClick={handleSend}
onKeyDown={e => e.key === 'Enter' ? handleSend:
''}>Send</button>
this query is already discussed in this thread. Here's a link!