当前位置:  开发笔记 > 编程语言 > 正文

Javascript else if语句不起作用

如何解决《Javascriptelseif语句不起作用》经验,为你挑选了1个好方法。

我在学校的网站上工作,我需要制作一个购物车.当我检查所要求的数量是否比可用数量更大时,即使不是,也会返回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

我得到这样的价值观

    

 

输入类型是数字我假设我不需要从字符串转换为数字.输入类型编号=不是可以比较或乘法的实际数字或其他什么?

谢谢你的回答 :)



1> Suren Srapya..:

因为你quantityavaliable是字符串,而不是数字.比较是通过字符串.

试着做

var quantity = Number.parseInt(jQuery('#quantity').val());
var avaliable = Number.parseInt(jQuery('#avaliable').val());

编辑

或者,如果要将它们用作字符串,则只能在条件中进行解析

else if(Number.parseInt(quantity) > Number.parseInt(avaliable)){

}


好奇:为什么`Number.parseInt`而不仅仅是'parseInt`?
推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有