我在学校的网站上工作,我需要制作一个购物车.当我检查所要求的数量是否比可用数量更大时,即使不是,也会返回true.例如3> 12是真的,我收到错误信息.我拼错了"可用"..我知道:(这是我的功能:
function add_to_cart() { jQuery ('#modal_errors').html(""); var size = jQuery('#size').val(); var quantity = jQuery('#quantity').val(); var avaliable = jQuery('#avaliable').val(); var error = ''; var data = jQuery('#add_product_form').serialize(); if( size == '' || quantity == '' || quantity == 0 ){ error +='You need to select a size and quantity.
'; jQuery('#modal_errors').html(error); return; } else if(quantity > avaliable){ error +='There are only '+avaliable+' avaliable and you asked for '+quantity+'.
'; jQuery('#modal_errors').html(error); return; } }
这将返回消息(对于我的情况):"只有12个可用,你要求3.
这可能是一个noob错误,但我无法弄清楚.有什么帮助吗?
编辑 - >>
用过的
var quantity = Number.parseInt(jQuery('#quantity').val()); var avaliable = Number.parseInt(jQuery('#avaliable').val());
它有效但现在再次进入雾中:D
我得到这样的价值观
输入类型是数字我假设我不需要从字符串转换为数字.输入类型编号=不是可以比较或乘法的实际数字或其他什么?
谢谢你的回答 :)
因为你quantity
和avaliable
是字符串,而不是数字.比较是通过字符串.
试着做
var quantity = Number.parseInt(jQuery('#quantity').val()); var avaliable = Number.parseInt(jQuery('#avaliable').val());
编辑
或者,如果要将它们用作字符串,则只能在条件中进行解析
else if(Number.parseInt(quantity) > Number.parseInt(avaliable)){ }