在ajax脚本中实现if-else条件

时间:2017-01-01 13:20:39

标签: php ajax

我对这种情况有疑问。 "(numofeggs< totalsm)"在条件只执行。否则,所有变量(#34; numofeggs< totalsm"除外)都不起作用。有什么方法可以做吗?

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

1 个答案:

答案 0 :(得分:2)

您需要将输入转换为数字。数字0是假的,但字符串"0"是真实的。当您与<进行比较时,数字与字符串的工作方式不同(例如5 < 12为真,但"5" < "12"为false)。

对于输入,请使用Number()将其转换为数字。对于来自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 ?>;