2017-01-01 30 views
1

我遇到了這種情況的問題。條件中的「(numofeggs < totalsm)」只能執行。否則,所有變量(除「numofeggs < totalsm」)都不起作用。有什麼辦法可以做?在ajax腳本中實現if-else條件

$(document).ready(function() { 
    displayDataSM(); 
    displayTotaleggs(); 
    $("#btn-input").click(function() { 
    var numofeggs = $("#numofeggs").val(); 
    var size = $("#size").val(); 
    var price = $("#price").val(); 
    var farmername = $("#farmername").val(); 
    var totalsm = "<?php echo $totalSmall ?>"; 

    if ((numofeggs < totalsm) && (size && price && farmername)) { 
     $.ajax({ 
     url: "ajaxeggsout.php", 
     type: "POST", 
     async: false, 
     data: { 
      "btn-input": 1, 
      "numofeggs": numofeggs, 
      "size": size, 
      "price": price, 
      "farmername": farmername 
     }, 
     success: function(data) { 
      displayDataSM(); 
      displayTotaleggs(); 
      $("#numofeggs").val(''); 
     } 
     }) 
    } 
    return false; 
    }); 
}); 
+0

IF((numofeggs 0 && price> 0 && farmername.length> 0)) – Satya

+0

從我的程序中,(numoffeggs

+0

@Satya'0'和''「''是JS中的falsy值。 – Barmar

回答

2

您需要將您的輸入轉換爲數字。數字0是虛假的,但字符串"0"是truthy。當您與<進行比較時,數字的工作方式與字符串不同(例如5 < 12爲true,但"5" < "12"爲false)。

對於輸入,請使用​​將它們轉換爲數字。對於來自PHP的變量,請勿將其放在引號中。

所以做:

var numofeggs = Number($("#numofeggs").val()); 
var size = Number($("#size").val()); 
var price = Number($("#price").val()); 
var farmername = $("#farmername").val(); 
var totalsm = <?php echo $totalSmall ?>; 
+0

當我刪除小於「<」號時,它正在工作。但是(numofeggs

+0

我應該在哪裏放置這個條件(numofeggs

+0

看到我更新的答案,您需要將更多東西轉換爲數字。 – Barmar