0
votes

Forcer la longueur de la boîte de texte ou une variable

J'ai du code JavaScript. Je veux mettre en contrôle des erreurs mais je ne sais pas où commencer. Je veux, si le contenu de VAL1 n'est pas exactement de 21 caractères, d'arrêter le script ou de mieux donner une boîte de message au fait. Ou peut-être qu'il est possible de forcer la boîte d'entrée à contenir 21 caractères? Désolé si sa question idiote mais je suis nouveau à cela et que j'apprends toujours.

I Définissez la taille de la boîte d'entrée sur 21, mais cela n'augmente que la dimension, de sorte que ce soit toujours possible de saisir plus ou moins de caractères. Je pensais peut-être qu'une sorte de si em> déclaration pourrait le faire, mais ne savez pas comment faire cela et mes tentatives ont été infructueuses. P>

function ValidateDate()
{
var datepicker = document.getElementById('datepicker');
var datepicker = document.getElementById('datepicker').value;
var FullDate = 21;   

  if (datepicker.length !== FullDate) {
  {
    alert("The Date Must Have a Start *and* End Date. Use the Calendar to Ensure this. Do Not enter any other text in the Box!");
    document.getElementById("datepicker").focus();
    return false;
  }
  } else {
    screenshot();      
  }
}


17 commentaires

Veuillez vérifier alors, dans DevTools, si la demande postale est envoyée du tout et, le cas échéant, quelle est la réponse, elle peut être une question liée. Essayez également de débogage / console.log pour vérifier la valeur de val1_lenght


Tu m'as perdu là-bas. Être lié?


Par be (backend) liée je veux dire que si Ajax appelle à, axajfile.php est fabriqué et que vous ne voyez pas le résultat attendu à DB, c'est quelque chose qui ne va pas avec la manière dont vous traitez les données que vous envoyez.


Ah ok merci. Ne pense pas que c'est ça. Cela a fonctionné parfaitement jusqu'à ce que j'ai essayé d'ajouter le code à la longueur de la chaîne de test. Je ferai des expériences plus tard.


J'ai regardé les devtools et le message n'est pas envoyé. L'erreur est toujours: RéférenceError: Val1_Length n'est pas défini. Cela se produit si je démarre l'instruction IF après html2canvas (document.body) .Chen (fonction (toile) {(ut ici il exécute d'abord le code de toile. Ou si je l'ai dit après la fonction de capture de fonction () {ça s'arrête morte sans exécuter aucun code.


Et quelle serait la valeur de val1 ?


C'est d'une application DatePicker que j'ai installée. C'est un champ de texte de 21 caractères. C'est dans le format 2019-07-14_2019-07-21 mais je viens de comprendre que cela a annoncé .JPG y a annexé, il est donc de 25 caractères au total.


Je viens de modifier votre instruction IF pour que ce ne soit pas pour 25 caractères et que je l'ai ajouté à mon code. Je ne reçois aucune erreur sur VAL1 maintenant, mais cela permet de télécharger même s'il a moins de 25 caractères. Je mettrai à jour le message d'origine avec le code afin que vous puissiez vérifier que je l'ai ajouté correctement car il est probablement de ma faute.


ça a l'air parfaitement bien maintenant. Essayez de joindre l'arrêt d'arrêt et de déboguer la valeur de VAL1 variable: développeurs.google.com/web/tools/chrome-devtools/javascript


Je viens de penser. Pourrait-il être préférable de faire l'instruction IF où le bouton est cliqué? Peut-être dans une nouvelle fonction et si le chèque est ok, il appelle alors la fonction de capture d'écran? Je vais enquêter sur ceci.


Pour quelque chose qui simplifié, cela n'a pas vraiment d'importance si vous déplacez votre chèque une autre fonction ou non, ce serait un peu trop


Ok, j'avais tort. C'est 21 caractères. Le fichier .jpg est ajouté dans le PHP plus tard, avant que le contenu ne soit mis / publié sur le serveur. Ok j'ai finalement compris le débogueur. Je viens de regarder un point d'arrêt maintenant.


1er test La valeur VAR1 était "2019-08-25_2019-08-31". Cela a été publié en 2019-08-25_2019-08-31.jpg - 2e test La valeur VAR1 était "2019-08-18 _..." Cela a été publié en 2019-08-18 _ JPG


J'ai téléchargé un serveur de test. J'apprécierais vraiment que vous puissiez jeter un oeil à un moment donné. Pour choisir une date, vous choisissez un dimanche, puis le samedi suivant. Cheers :) flakie.epizy.com/index.html


Tout semble fonctionner comme prévu lors de l'utilisation du débogueur et, d'être honnête, je pense que je vous ai déjà aidé beaucoup;)


Pas de soucis et de lunis. Je trouverai une autre façon de faire la vérification.


J'ai résolu ceci maintenant. J'ai décidé qu'il était préférable d'utiliser une nouvelle fonction JavaScript en dehors de Ajax. Ça marche bien. Je me suis mis à jour une question originale avec le code.


3 Réponses :


0
votes

C'est simple. première longueur de la variable VAL1 xxx

puis à l'aide de la longueur de la vérification de la condition est 21 ou non

xxx


1 commentaires

Merci Naresh. Je l'ai essayé et j'ai mis à jour mon poste d'origine mais ne fonctionne pas pour moi. C'est probablement de ma faute, mettant quelque chose en mauvais endroit.



1
votes


1 commentaires

Merci Adam, j'ai défini le maxlenght et la longueur minimum à 21, mais ils sont toujours capables de mettre moins de caractères (mais la boîte devient rouge afin de le garder en place). Ils peuvent donc toujours télécharger une image sur le serveur avec un formatage incorrect (trop peu de caractères).



0
votes

J'ai résolu ceci. En fin de compte, j'ai décidé d'utiliser une fonction à l'intérieur de JavaScript, en dehors du code Ajax. C'est une solution beaucoup plus élégante, l'OMI et veillera à ce que les utilisateurs sauront quelles données doivent être entrées (et d'utiliser le calendrier de sélecteur de date).

function ValidateDate()
{
var datepicker = document.getElementById('datepicker').value;
var FullDate = 21;   

  if (datepicker.length !== FullDate) {
  {
    alert("The Date Must Have a Start *and* End Date. Use the Calendar to Ensure this. Do Not enter any other text in the Box!");
    document.getElementById("datepicker").focus();
    return false;
  }
  } else {
    screenshot();      
  }
}


0 commentaires