2011-03-31 65 views
2

我想從輸入文件中做一個簡單的計算usign值,但我有一個值傳遞給if語句的問題。它看起來像這樣:JavaScript的IF語句與條件從輸入字段

$('#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); 
} 
}); 

而且,wird的是,當力20,JavaScript的說,它傳遞的statemenst,當輸入.silaOd鍵入100(silaOd勁歌minForce和sildaDo意味着maxForce在波蘭)

我沒有任何想法,爲什麼發生這種情況。請幫忙! :)

有一個工作示例:http://jsfiddle.net/rJA6U/

+0

我H操作這些變量在你說的語言中是可以理解的,因爲如果不是那只是混淆...... – davin 2011-03-31 14:09:31

回答

3

你需要運行的輸入值parseInt(),就像這樣:

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

謝謝!這很好用;) – Szymon 2011-03-31 14:15:40

+0

你也可以考慮這個,http://stackoverflow.com/questions/2240490/jquery-parseint-not-playing-nicely。 – 2011-03-31 14:22:29

1

您比較字符串,這樣<或>不起作用。你需要將它們轉換爲int。

例如:

parseInt(dlugosc) > parseInt(sila0d) 
1

試試這個:

$.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); 

基於this link