2011-03-31 5 views
2

J'essaie de créer des valeurs d'indexation simples à partir des champs d'entrée, mais j'ai un problème avec la transmission des valeurs à l'instruction if. Il ressemble à ceci:Instruction IF JavaScript avec les conditions du champ de saisie

$('#confirmSila').click(function(){ 
var dlugosc = $('#sila').val(); 
var silaOd = $('.silaOd').val(); 
var silaDo = $('.silaDo').val(); 
if ((dlugosc > silaOd) && (dlugosc < silaDo)) 
{ 
//$('#orderWymiar').attr('value', dlugosc); 
$('#sila').css('border', '1px solid green'); 
$('.silaInfo').text('Statement true'); 
}else{ 
$('#wymiar').css('border', '1px solid red'); 
$('.silaInfo').text('silaOd must be more than' + silaOd + ', and less than ' + silaDo); 
} 
}); 

Et la chose wird est que, lorsque la force est de 20, JavaScript dit qu'il a passé la statemenst, quand en entrée .silaOd est tapé 100. (silaOd meand minForce et sildaDo signifie Maxforce en Pologne)

Je n'ai aucune idée, pourquoi cela se produit. S'il vous plaît aider! :)

Il y a un exemple de travail: http://jsfiddle.net/rJA6U/

+0

I h ope ces variables sont compréhensibles dans une langue que vous parlez, parce que sinon c'est juste confus ... – davin

Répondre

3

Vous devez exécuter parseInt() sur les valeurs d'entrée, comme ceci:

var dlugosc = parseInt($('#sila').val()); 
var silaOd = parseInt($('.silaOd').val()); 
var silaDo = parseInt($('.silaDo').val()); 
+0

Merci! Cela fonctionne très bien;) – Szymon

+0

vous pouvez considérer cela aussi, http://stackoverflow.com/questions/2240490/jquery-parseint-not-playing-nicely. –

1

Vous comparez des chaînes si < ou> ne fonctionne pas. Vous devez les convertir en int.

exemple:

parseInt(dlugosc) > parseInt(sila0d) 
1

essayez ceci:

$.fn.tryParseInt = function(defaultValue) { 

    var 
     retValue = defaultValue, 
     actualValue = $(this).val(); 

    if (actualValue != null) { 
     if (actualValue.length > 0) { 
      if (!isNaN(actualValue)) { 
       retValue = parseInt(actualValue); 
      } 
     } 
    } 

    return retValue; 
} 


var 
    dlugosc = $('#sila').tryParseInt(0), 
    silaOd = $('.silaOd').tryParseInt(0), 
    silaDo = $('.silaDo').tryParseInt(0); 

basé sur this link