将输入的最大属性作为整数传递给jQuery变量

3

我试图将最大属性作为整数传递给jquery变量,但似乎无法使其工作。在这个例子中,变量maxqty应该是6。

欢迎任何想法。

HTML

<input name="qty" id="qty" type="text" value="1" size="3" maxlength="2" max="6" />

Jquery

var maxqty = 10

jQuery(function(){
    jQuery("#qtyplus").click(function(){
     if(jQuery('#qty').val()<maxqty)
     jQuery(":text[name='qty']").val( Number(jQuery(":text[name='qty']").val()) + 1 );
    });
    jQuery("#qtyminus").click(function(){
     if(jQuery('#qty').val()>1)
      jQuery(":text[name='qty']").val( Number(jQuery(":text[name='qty']").val()) - 1 );

    });
  });

你可以使用 data-attributes - MamaWalter
如果 maxqty 真的是 10a,那么数字比较将会失败。而且这段代码应该要做什么呢?因为你似乎没有尝试使用 max 属性。 - David Thomas
你在传递什么? - Sudz
a 是一个打字错误。它是一个加减按钮,用于输入;maxqty 是上限。 - ecolema
我不知道你想用这个做什么,但是你想在这里做的事情可以很容易地使用HTML5的数字输入框而不需要任何js来完成。 - Jehanzeb.Malik
2个回答

1

您想要的是parseInt($('#qty').attr('max'))

例如:if( jQuery('#qty').val() < ( parseInt(jQuery('#qty').attr('max')) ) )

您试图检索的是元素上的属性,其中任何一个都可以通过.attr调用来检索。

哦,以防万一,jQuery .attr文档


如果你要使用 parseInt(),不要忘记基数。 - David Thomas
好的,我想Number会更简单...今天早上脑子里一直在想parseInt :p - Ted

0

你可以使用data-attributes来存储你的最大值。

像这样:

<input name="qty" id="qty" type="text" value="1" size="3" maxlength="2" data-max="6" />

Js:

var input = jQuery('#qty');

jQuery("#qtyplus").click(function(){
 if(input.val()<jQuery('#qty').data('max'))
 input.val( parseInt(input.val()) + 1 );
});

jQuery("#qtyminus").click(function(){
 if(input.val()>1)
  input.val( parseInt(input.val()) - 1 );
});

演示代码


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接