Mais il a été implémenté vérifier le traitement dans l'élément d'entrée après un temps spécifié et lorsque le focus est éteint, et quitter la fonction JavaScript, afficher et afficher un message d'erreur deux fois dans l'alerte sera appelé à la fois pour le traitement il n'y a pas Sera fait.
Je souhaite émettre une alerte une seule fois. Je veux vérifier à chaque fois que je ne me concentre pas. Je veux vérifier même après le temps spécifié.
main.js
function isTimecheck() {
setTimeout("onAutoSave()",Temps spécifié);
}
function onAutoSave() {
var result = true;
var a =Éléments d'entrée.value; //Obtenez la valeur d'entrée de l'élément d'entrée.
var maxLen = 20; //Nombre maximum de caractères: 20 dans l'exemple.
if (a != '') {
result = WordCountCheck(a, maxlen);
if (result == false) {
alert(Message d'erreur);
Éléments d'entrée.focus(); //Renvoyez le focus sur l'élément d'entrée.
return false;
}
}
}
window.onload = function(){
isTimeCheck();
}
check.js
function WordCountCheck(str, maxLength) {
var i = 0;
var len = 0; //Stockez le nombre d'octets.
str.value = rightTrim(str.value);//Supprimez l'espace droit inutile.
var val = str.value;
if(val !=""){
for(; i<val.length; i++) {
S'il est demi-largeur, il fait 1 octet, alors ajoutez 1 à len.
S'il est pleine largeur, il fait 2 octets, ajoutez donc 2 à len.
}
if(maxLength < len){
alert(Message d'erreur);
str.focus(); //Renvoyez le focus sur l'élément d'entrée.
return false;
}
}
}
Test.html
<TD>
<textarea cols="" rows="" name="" style="" onBlur="WordCountCheck(this, 20);">Éléments d'entrée</textarea>
</TD>
Cette partie HTML
<TD>
<textarea cols="" rows="" name="" style="" onChange="WordCountCheck(this, 20);">Éléments d'entrée</textarea>
</TD>
Dans ce cas, lorsque j'ai essayé avec les mêmes données que onBlur, le pop-up n'est apparu qu'une seule fois, mais si tel est le cas, la valeur change et un message d'erreur apparaît, puis le focus est éteint sans changer. Je ne suis pas satisfait car je ne peux pas le vérifier.
En outre, le processus de vérification est décrit dans un autre fichier js.
En guise de réponse, je me demande maintenant si ce qui suit est faisable. (1) Cochez uniquement onBlur, et s'il y a une erreur, quittez le processus au début de onAutoSave. (2) Empêchez le processus onBlur d'être appelé lorsque le temps spécifié s'est écoulé. ③ Si une erreur de vérification se produit dans celle appelée en premier par onBlur ou onAutoSave, le processus est quitté à ce stade (je pense que cela est possible si le processus de sortie peut être réalisé ...)
En premier lieu, dans le cas de cette implémentation, lequel de onBlur et onAutoSave sera exécuté en premier une fois le temps spécifié écoulé?
Lorsque j'ai essayé de créer la partie onBlur comme suit (répertoriée dans JS pour une visualisation facile), bien sûr, elle n'est pas vérifiée au moment de la perte de mise au point, et elle n'est pas vérifiée même après le temps spécifié. Il semble que onAutoSave a été appelé en premier, donc si une erreur de vérification se produit là-bas, j'ai essayé de définir la variable globale checkFlg sur true afin que le traitement onBlur ne soit pas effectué. Cependant, l'alerte apparaît deux fois.
onBlur="isLostFocusCheck(this);"
var checkFlg=false;
function isLostFocusCheck(str) {
if(checkFlg==false) { //S'il y a une erreur de vérification lors de l'enregistrement automatique, checkFlg est vrai et cela doit être passé.
WordCountCheck(str, 20);
}
}
Recommended Posts