2013-06-27 104 views
0

我有一個輸入,可以在其中輸入值,這被檢查,如果它比數較大的if語句,它在第二次得到的百分比值,禁用場...jQuery的檢查與if語句的多個其他的輸入值,如果語句

現在問題出來了,當我試圖檢查它在不同的數字,與其他if和else語句。我是jQuery的nooby,我不知道這是可以解決的..

到目前爲止,我有這樣的情況:http://jsfiddle.net/dzorz/xFHte/

HTML:

<input type="text" class="entered" id="entered" name="entered"> 
<input type="text" class="percent" id="percent" name="percent" disabled> 

腳本:

$(".entered").change(function(){ 

if(parseFloat(this.value) > 39617756.85){ 
    $(".percent").val('1%'); 
} 


else if(parseFloat(this.value) > 19205010.98){ 
    $(".percent").val('2%'); 
} 


else if(parseFloat(this.value) > 12378426.86){ 
    $(".percent").val('3%'); 
} 

else(parseFloat(this.value) > 1242179.25){ 
    $(".percent").val('not qualified'); 
} 

}); 

我究竟做錯了什麼?

+2

有一個在你的代碼中的語法錯誤,最後如果丟失,http://jsfiddle.net/xFHte/2/ –

+0

沒有問題的,但我可以建議一個小的優化/整潔行動:通過添加'VAR VAL = parseFloat(THIS.VALUE)'你的函數的開始,然後在每個避免反覆'parseFloat()''調用只是if'測試'val' ... – nnnnnn

+0

也許我錯過了,但究竟是什麼問題。什麼號碼失敗?你輸入什麼,有什麼問題的輸出。你有所有這些神奇的數字,我不理解這一點。 –

回答

2

我認爲這個問題是你需要的最後'not qualified'在else塊不在else if因此,如果沒有一個條件的滿足了`沒有資格消息w ^生病將被顯示。

$(".entered").change(function(){ 
    var value = parseFloat(this.value); 
    if(value > 39617756.85){ 
     $(".percent").val('1%'); 
    } else if(value > 19205010.98){ 
     $(".percent").val('2%'); 
    } else if(value > 12378426.86){ 
     $(".percent").val('3%'); 
    } else{ 
     $(".percent").val('not qualified'); 
    } 
}); 

演示:Fiddle

1

你有一些問題,你的HTML語法

<input type="text" class="entered" id="entered" name="entered" /> 
<input type="text" class="percent" id="percent" name="percent" disabled="disabled" /> 

的意見與建議,結合

$(".entered").change(function() { 
    var value = parseFloat($(this).val()); 
    var text = ""; 

    if (value > 39617756.85) { 
     text = "1%"; 
    } else if (value > 19205010.98) { 
     text = "2%"; 
    } else if (value > 12378426.86) { 
     text = "3%"; 
    } else if (value > 1242179.25) { 
     text = "not qualified"; 
    } 

    if (text != "") $(".percent").val(text); 
}); 

會給你this working example