J'ai écrit une fonction que je peux réutiliser dans différentes pages pour rechercher des images. et je ne veux pas que la page soit actualisée lorsque vous appuyez sur Entrée.
Sans formulaire, cela fonctionne bien sur l'événement onclick.
Comment puis-je empêcher le rechargement de la page?
est le formulaire ci-dessous, Merci.
function searchImages()
{
let keyword = jQuery("#image_keyword").val();
let response = searchMedia('image',keyword);
console.log(response);
if(response.status === 'success')
{
// some code...
}
}
Fonction JQuery.
<form method="post" action="#">
<div class="input-group form-sm form-2 pl-0 m-b-20">
<input class="form-control " id="image_keyword" type="text" >
<div class="input-group-append">
<button type="submit" class="input-group-text" onsubmit="searchImages()">search</button>
</div>
</div>
</form>
5 Réponses :
Vous devez empêcher le comportement par défaut de l'événement onsubmit .
function searchImages(e)
{
e.preventDefault();
let keyword = jQuery("#image_keyword").val();
let response = searchMedia('image',keyword);
console.log(response);
if(response.status === 'success')
{
let data = response.data;
console.log(data);
}
}
voulez-vous dire comment e sera transmis à searchImages
Si vous souhaitez restreindre le rechargement de la page: utilisation : event.preventDefault ();
Utilisez la fonction onsubmit dans la balise form au lieu du bouton submit Et passez le paramètre d'événement. )
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="post" action="#" id="form_one">
<div class="input-group form-sm form-2 pl-0 m-b-20">
<input class="form-control " id="image_keyword" type="text">
<div class="input-group-append">
<button type="submit" class="input-group-text" >search</button>
</div>
</div>
</form>
$('#form_one').on('submit',function(e){
e.preventDefault();
console.log('ok')
})
Pour une approche Jquery simple .Définissez la soumission avec in dom
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="post" action="#" onsubmit="searchImages(event)">
<div class="input-group form-sm form-2 pl-0 m-b-20">
<input class="form-control " id="image_keyword" type="text">
<div class="input-group-append">
<button type="submit" class="input-group-text" >search</button>
</div>
</div>
</form>
function searchImages(e) {
e.preventDefault();
console.log('ok')
}
Vous devez utiliser e.preventDefault () et addEventListener
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="post" action="#" onsubmit="searchImages(event)">
<div class="input-group form-sm form-2 pl-0 m-b-20">
<input class="form-control " id="image_keyword" type="text" >
<div class="input-group-append">
<button type="submit" class="input-group-text" >search</button>
</div>
</div>
</form>
function searchImages(e)
{
e = e || window.event
e.preventDefault();
let keyword = jQuery("#image_keyword").val();
let response = searchMedia('image',keyword);
console.log(response);
if(response.status === 'success')
{
}
}
Merci, mais je veux utiliser ma propre fonction
Merci, cela a fonctionné, mais y a-t-il un autre moyen de faire de même sans utiliser document.querySelector?
@Javed Saifi Ok ne fonctionne pas avec querySelecotor () . Acceptez la réponse si cela a fonctionné
Modifiez cette ligne:
à
Pas besoin de faire autre chose.