使用jquery条件更改数量文本框?

时间:2011-11-24 09:54:36

标签: javascript jquery e-commerce aspdotnetstorefront

我有一个问题,我一直在研究一些jquery来设置数量文本框以显示25或更多。它检查措辞个性化是否有一个空字符串,如果它没有应用25个数量,因为它显然是一个套件产品并且是个性化的。

套件产品的关键部分是:

if (parseInt($("#kitProduct #Quantity").val()) < 25) {
    $("#kitProduct #Quantity").attr("value", "25");

它知道它是一个套件产品,因为我有一个div.id包裹在名为Kit Product的页面上。

我的问题是我需要覆盖某些产品的套件产品代码。我认为最好的办法就是检查div的内容,例如:

<div class="ProductNameText">Exclusive Handmade Box</div>

如果找到Exclusive Handmade Box,则允许用户在文本框中输入1或更多的数量。

我尝试过以下代码:

quantity = $('div.ProductNameText').text().match(/Exclusive Handmade Box/g).length;
       if(quantity)
         {
          $("#kitProduct #Quantity").attr("value", quantity);
          $("#kitProduct #Quantity").keypress(function(){

          var quantity = parseInt($.trim($(this).val()));
          if( quantity < 1) {
             $(this).val('1');
          } else {
             $(this).val(quantity);
         }

但是这只会强制1.我现在真的迷失了,我已经尽可能地解释了,而且下面是jsfiddle中页面的缩减示例。

真的希望你能帮忙吗?

更多信息:

在大多数情况下,Kit产品在xml包中定义,该包应用于管理部分中的试剂盒产品。但是,我有一些产品仍然是产品,但不需要25个数量。

目前jquery检查文本区域框,因为如果用户添加了个性化,这意味着他们想要一个套件产品,因此最小数量是25。

但是我有一个产品我想根据我想要的1个或更多的div内容进行检查...

所以我应该能够在没有当前代码的情况下输入1-25进入框中,表示您输入的oppps少于24,所以我要将其更改回min kit产品数量..

如果您尝试使用jsfiddle,您可以看到它不会让您输入3的值?这就是问题。

http://jsfiddle.net/FB5MQ/3/

1 个答案:

答案 0 :(得分:0)

在“产品套件产品的关键部分”代码中,您应该只有一个最小变量:

var minValue = 25;
if ($('div.ProductNameText').text().match(/Exclusive Handmade Box/)) {
    minValue = 1;
}

if (parseInt($("#kitProduct #Quantity").val(), 10) < minValue) {
    $("#kitProduct #Quantity").prop("value", minValue);
    // rest of code...