2011-10-02 2 views
0

sous étiquette de script J'ai besoin d'inclure les codes pour "valeur doit être non négative" quand un nombre négatif est entré. J'ai déjà inclus les codes pour "la valeur doit être un nombre".paramètres de validation

<script type="text/javascript"> 
    function test_ifinteger(testcontrol, nameoffield) { 
     var x = 0; 
     var isok = true; 
     var teststring = testcontrol.value; 
     if (teststring.length == 0) 
      return true; 
     else { 
      while (x < teststring.length) { 
       if (teststring.charAt(x) < '0' || teststring.charAt(x) > '9') 
        isok = false; 
       x++; 
      } //end while 
      if (!isok) { 
       alert(nameoffield + " must be a number!"); 
       testcontrol.focus(); 
      } //end else if(ok) 
      return isok; 

     }//end else if (teststring.length==0) 
    } //end function 

</script> 

Répondre

0

Vous pouvez vérifier le premier caractère de la chaîne, ce sera "-" si c'est un nombre négatif.

Utilisez ceci:

var negative = "-1234"; 

    if (negative[0] == '-') 
     MessageBox.Show("Negative Number"); 

ou ajouter à votre code:

while (x < teststring.length) { 
      if (x == 0 && teststring.charAt(x) == '-') 
       MessageBox.Show("Negative Number - Do what you want"); 
      if (teststring.charAt(x) < '0' || teststring.charAt(x) > '9') 
       isok = false; 
      x++; 

De plus, si son négatif ou pas un nombre, pensez à briser la boucle pour éviter les itérations de boucle inutiles. utilisez la commande "break".

if (x == 0 && teststring.charAt(x) == '-') 
{ 
    MessageBox.Show("Negative Number - Stopping loop"); 
    break; 
} 
0

Essayez,

<script type="text/javascript"> 
function isNumber(n) { 
    return !isNaN(parseFloat(n)) && isFinite(n); 
} 
function test_ifinteger(testcontrol, nameoffield) { 

     var teststring = testcontrol.value; 
     if(isNumber(teststring)) { 
     var no=parseFloat(teststring); // or use parseInt 
     if(no<0) { 
      //negative 
     } 
     } 
     else { 
     //not a number 
     } 
} 
</script> 
Questions connexes