6
votes

Restreindre l'entrée dans une boîte d'invite

Je veux que ma boîte d'invite prenne une entrée maximale de 10 caractères.Si l'utilisateur appuie n'importe quelle touche après qu'aucun texte ne doit être entré.

Actuellement, le code que j'utilise utilise pendant que l'entrée est à l'intérieur Limiter.Si c'est au-delà de la limite, il accepte le texte mais empêche l'utilisateur jusqu'à ce que l'entrée soit sous la limite. La valeur sera attribuée à la variable Person1 et le code se déroulera uniquement lorsque l'entrée est dans la limite.

Je veux que la boîte d'entrée ne soit pas acceptée plus que celle spécifiée à la 1ère place elle-même.

aide.

Le code est comme suit: xxx


5 commentaires


Ceci est pour TEXT-BOX.WILL ça marche pour une boîte rapide ??


Oh invite ... hmm. Je vais jeter un oeil autour de moi.


ha, c'est un tressant. La réponse rapide est - non possible. Je dirais que cela ne peut être fait que si vous pouvez détecter si une invite est mise au point, vous pouvez simplement annuler la propagation des événements de clé d'utilisateur (mais serait toujours une douleur pour détecter les touches appuyées). Si la détection de détection de l'invite n'est pas possible, je n'ai aucune idée, serait curieux si quelqu'un a une solution.


@ i--: Les événements de clavier ne sont pas transmis à la page pendant que la boîte de dialogue modale est en hausse.


4 Réponses :


0
votes

vous ne pouvez pas.

éviter invite () , ainsi que ses proches, alerte () et confirment () . Comme vous l'avez découvert, ils sont tous assez limités dans ce qu'ils peuvent faire; Ils empêchent souvent l'utilisateur d'effectuer d'autres tâches dans le navigateur, telles que la commutation à d'autres onglets. Pour un effet similaire, vous pouvez plutôt utiliser un modal en page. Voir modules de bootstrap pour un exemple d'un de tel.


0 commentaires

3
votes

Tout ce que je peux penser à utiliser est une tâche ... tout en faisant réapparaître l'invite si le texte de l'utilisateur était sur le montant spécifié. Espère que cela aide.

var n = 0, msg = "Please enter your data 1(Maximum limit 20)";
do {
    n++;
    if(n > 1) msg = "You had too many characters! \nPlease enter your data 1(Maximum limit 20).";
    person1=prompt(msg, "Sample1");

}
while (person1.length > 20)


0 commentaires

2
votes

Nouvelles tristes J'ai peur - cela ne peut pas être fait avec invite ()

Cependant, vous pouvez faire une chose similaire à l'aide de dialogues de jQuery

Vous n'êtes pas obligé d'utiliser jQuery - mais peut-être cherchez à avoir l'idée. Fondamentalement, cette façon d'avoir une approche HTML normale à ce sujet (vous pouvez donc utiliser Maxlength ou JavaScript pour limiter l'entrée)

Si vous utilisez une boîte de dialogue modale, vous obtiendrez un effet très similaire.


0 commentaires

1
votes

Ce problème ne peut pas être complètement résolu à l'aide de la boîte d'invite. Pour résoudre ce problème, vous devez faire une boîte de dialogue personnalisée jQuery ui .

Fondamentalement dans ce que vous faites une boîte à texte et deux Boutons "OK" & "Annuler" à l'intérieur d'une étiquette de formulaire et l'intégration du code dans JQuery pour les faire apparaître comme une boîte d'invite.

J'ai utilisé la boîte de dialogue avec la fonctionnalité par défaut sur cette page http://jqueryui.com/dialog/#default comme fondation ...

L'explication du code est donnée à la fin ..

Voici le code complet de ce ... xxx

explication du code ..

  • Un bouton est affiché sur la page Web.Onclick montrera une fenêtre contextuelle Boîte de dialogue avec une touche TEXT-Box et 2 commandes.
  • L'entrée a été limitée à 10 caractères.
  • L'entrée prise sera imprimée sur la page Web sous le bouton sous la sortie.
  • L'entrée sera prise 5 fois au fur et à mesure que le compteur a été spécifié jusqu'à 5 ..

    Le code ci-dessus peut être modifié complètement en fonction des besoins individuels..hope Cette réponse est utile. Si tout doute, n'hésitez pas à demander ...


0 commentaires