2010-01-19 3 views
0

Mon Html est comme ceci:automatique de calcul pour champ de saisie des valeurs

<input class="gbTransform" type="text" name="maxdl" value=""/> 

Et javascript comme ceci:

$('.gbTransform').change(function(){ 
     var sz = $(this).val().match(/(\d+)gb/i); 
     if(sz.length > 1){ 
      $(this).val(parseInt(sz[1])*1024); 
     } 
    }); 

Ce que cela fait est lorsqu'un utilisateur tape 1Go il calcule automatiquement mbs (1 * 1024 = 1024) et modifiez la valeur des champs d'entrée.

Cela fonctionne très bien, mais quand les types d'utilisateurs 1.5gb ses calcule 5 * 1024 ce qui est incorrect, il devrait être 1.5 * 1024

Merci.

Répondre

0

Vous pouvez effacer toutes les chaînes "gb" et utiliser parseFloat:

parseFloat("1.5"); // 1.5 

Exemple:

var a = "1.5gb".replace("gb", ""); 
document.print(parseFloat(a)); 
+0

Cependant, je reçois une réponse incorrecte je change parseInt à parseFloat mais quand je tape '1.5GB 'la valeur du champ est calculée comme' 5 * 1024 = 5120' au lieu de '1,5 * 1024 = 1536' – Shishant

+0

s'il vous plaît regarder la réponse mise à jour – Darmen

Questions connexes