Je suis en train de soumettre un formulaire de recherche sur la touche Entrée ainsi que sur le bouton. Le clic fonctionne bien. Le texte est effacé, les rendoirs / la page de recherche et l'indice de recherche affichés. Lorsque je frappe Entrée, le texte de recherche s'éclaircit, mais rien d'autre. J'ai ajouté une poignée de main-d'œuvre, mais ça ne marche pas. Comment puis-je effectuer la recherche sur ENTER?
handleSubmit(e) {
e.preventDefault(e);
document.getElementById("search-input")
.addEventListener("keydown", function (event) {
// event.persist();
if (event.keyCode === 13) {
document.getElementById("search-button").click();
}
});
this.setState( {
searchItem: "",
})
};
render() {
return (
<div id="search-form">
<form>
<input
type="text"
id="search-input"
placeholder="Search videos"
value={this.state.searchItem}
onChange={this.update()}
/>
<button type="submit" id="search-button" onClick={this.handleSubmit}>
<Link to={`/search?search=${this.state.searchItem}`}><img id="search-icon" src="https://image.flaticon.com/icons/svg/49/49116.svg" alt="" /></Link>
</button>
</form>
</div>
);
}
3 Réponses :
document.getElementById("id_of_your_textbox").addEventListener("keydown", function(e) {
// Prevent a blank line.
e.preventDefault();
// Enter is pressed.
if (e.keyCode == 13) {
this.submit();
}
}, false);
Simply, edit document.getElementById("search-button").click(); to document.getElementById("search-button").submit();
VOTRE EVENTLISTENER ne peut pas être à l'intérieur de la fonction Handlesubmit.
form.addEventListener('submit', handleSubmit());
Devrait être handlesubmit code> au lieu de handlesubmit () code>. Nous voulons juste indiquer la fonction, pas l'appeler.
Dans les formulaires, Entrée à Soumettre est activé par défaut, mais vous devez indiquer le formulaire quoi faire sur Soumettre. Ajoutez donc un événement Onsubmit code> à votre formulaire: handleSubmit(e) {
e.preventDefault(); //prevents the form from submitting before the end of this function
//do something here...
}
Vous pouvez vérifier ce problème. Cela pourrait vous aider. Stackoverflow.com/cevestions / 20484738 / ...
Est-ce que cela répond à votre question? Comment soumettre un formulaire lorsque la clé de retour est pressé?