我对这种情况有疑问。 "(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;
});
});
答案 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 ?>;