我有一个问题,我一直在研究一些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的值?这就是问题。
答案 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...