2016-07-16 1 views
0

Je travaille actuellement sur un projet, et j'ai besoin de faire apparaître une boîte d'alerte si l'utilisateur saisit une valeur qui n'est pas un nombre. J'ai créé une boucle for pour cela et cela fonctionne, cependant chaque fois que je tape quelque chose qui n'est pas un nombre, ma page Web se fige et je dois le fermer. Je ne peux pas comprendre ce que je fais mal. Voici le code que j'ai.Pourquoi ma boucle for for JavaScript bloque-t-elle ma page Web?

var Y=1 

    for(var i = 0; i < Input.length; i++) 
    { 
    if(isNaN(Input.charAt(i))) 
    { 
     alert("Parameter is Not A Number"); 
     Y = 0; 
    } 
    } 
+1

Que fait Input.length =? –

+1

Je ne pense pas que cette boucle soit le problème. – Pointy

+1

Essayez d'ajouter une instruction 'break;' après 'Y = 0;'. – afuous

Répondre

0

Si vous utilisez HTML5, vous pouvez limiter l'entrée aux valeurs numériques en spécifiant simplement

<input type="number"> 

utilisateur Essayez ceci si vous voulez coller à alerter boîte et d'autres choses

<input type="input" id="edit1"/> 

Js

$(document).ready(function(){ 
    $('[id^=edit]').keypress(validateNumber); 
}); 

var Y=1 

function validateNumber(event) { 
var key = window.event ? event.keyCode : event.which; 
if (key < 48 || key > 57) { 
     alert("Parameter is Not A Number"); 
     Y = 0; 
    } 
    else return true; 
};