Comment appeler la fonction de saisie de texte touche entrée enfoncée?
J'ai créé un div dans un format de tableau que j'utilise pour filtrer les données d'options.
Je vais avoir des problèmes avec la en appuyant sur entrée à partir de l'intérieur de la zone de texte. Lorsque j'appuie sur entrée, le message d'alerte s'affiche, mais la page se recharge et n'est pas correctement filtré avec l'une des options. Quelqu'un peut-il m'expliquer ce qui se passe?
S'il vous plaît laissez-moi savoir si je n'était pas claire ou besoin d'expliquer quoi que ce soit!
C'est ce que mon option de filtre de la barre ressemble:
HTML:
<form name="myform">
<center><table id="mykeyTable" border="1" cellspacing="10" cellpadding="10">
<center></center>
</td>
<!--Search bar -->
<tr>
<td colspan="4">
<center>
<form>
Starts With: <input type="text" id="myText" value=""><br>
</form>
</center>
</tr>
<!-- Site Options -->
<td><center>Site</center><br>
<input type="radio" name="siteID" onclick="updateSiteID(this.value)" value="Asc"checked>
<input type ='button' id='siteIDChosen' class='button-addAsc'/>
<br>
<input type="radio" name="siteID" onclick="updateSiteID(this.value)" value="Desc" >
<input type ='button' id='siteIDChosen' class='button-addDesc'/>
<br>
</input>
</form></td>
<!-- Status options -->
<td><center>Status
<br><br></center><input type="radio" name="siteStatus" onclick="updateSiteStatus(this.value)"value="Online"> Online<br><input type="radio" name="siteStatus" onclick="up\
dateSiteStatus(this.value)" value="Offline"> Offline<br><input type="radio" name="siteStatus" onclick="updateSiteStatus(this.value)" value="Both" checked> Both </form></td\
>
<!-- usage plan -->
<td><center>Usage Plan (in MB)</center>
<br><input type="radio" name="usagePlan" onclick="updateUsagePlan(this.value)" value="yesUsagePlan"> Data Plan<br><input type="radio" name="usagePlan" onclick="updateUsage\
Plan(this.value)" value="noUsagePlan"> No Data Plan<br><input type="radio" name ="usagePlan" onclick="updateUsagePlan(this.value)" value="bothUsagePlan" checked> All Plans\
</form></td>
</table>
<br>
<form><input type='button' id='filter' name='Submit' onclick='validate()' class='button-add' value=" Filter Selections"/></form>
</center>
</form>
</div>
Javascript:
<script>
$("#myText").keypress(function(event) {
if (event.which == 13) {
alert("You pressed enter");
validate();
}
});
$(document).keypress(function(event){
if(event.keyCode == 13){
validate();
}
});
function validate() {
//...
}
</script>
RÉSOLU:
J'ai utilisé jQuery cliquez pour appeler la même fonction utilisée comme bouton.
$(document).keypress(function(event){
if(event.keyCode == 13){
$('#filter').click();
// validate(); doesn't need to be called from here
}
});
Votre solution ne fonctionnait que si j'entre sur le document, mais si je me concentre en inputText et appuyez sur entrée, il remplace le '$('#filtre").cliquez sur la (les) méthode et d'appeler toutes les autres méthodes disponibles dans le script. aucune idée de quel est le problème??
OriginalL'auteur MadsterMaddness | 2014-11-04
Vous devez vous connecter pour publier un commentaire.
Je soupçonne que vous obtenez une erreur dans votre validate() de la fonction. Essayez de mettre l'alerte après l'appel de la valider() et de voir si vous recevez toujours le message d'alerte. C'est comme ça...
Hmmm... je pourrais essayer de définir le focus à l'extérieur de la zone de texte, puis de simuler une pression de touche entrée.
Quand j'ai passer l'alerte pour valider la fonction de l'alerte apparaît deux fois. Savez-vous ce que serait la cause de quelque chose comme ça? Comment simuler l'appui sur un bouton à partir de l'intérieur du jQuery?
Je ne suis pas sûr au sujet de l'alerte apparaissant deux fois. C'est un post qui explique comment simuler une entrée appuyez avec jQuery: stackoverflow.com/questions/3276794/...
J'ai utilisé jQuery cliquez sur la fonction: api.jquery.com/click
OriginalL'auteur EricBellDesigns
Il ressemble à la question, telle que décrite dans votre question 'Comment appeler la fonction de saisie de texte touche entrée enfoncée?" n'est pas un problème, puisque vous avez la bonne des évènements programmés pour écouter la touche Entrée. Ce que vous devez faire est de corriger votre de valider la fonction de mise à jour de l'INTERFACE utilisateur. Essayez de déplacer l'alerte pour la première ligne de la validation de la fonction et à partir de là pour comprendre où votre code est la rupture.
Aussi, il ressemble votre code HTML peut être fixé jusqu'à... tags sont de la vieille école obsolète code. Vous ne pouvez pas avoir de balises imbriquées. Et enfin, vous n'êtes pas fermer vos balises correctement. Les problèmes que vous rencontrez pourrait être liée, en particulier avec les balises imbriquées comme le navigateur tente de corriger votre code HTML et qui sait, qui affiche les paramètres de la forme que pourrait être l'envoi.
Astuce: Utilisez Chrome web de l'inspecteur de la console pour voir exactement où votre code est la rupture. Affichage->Développeur->Console Javascript
OriginalL'auteur biko