0

我有数量选择输入,它提供了一系列数量。

如果值(objRtn.numMultiPages)与数据数量值匹配,我可以使用 jquery 选择一个值,但如果数量在 2 个中断之间,我会被卡住,例如,如果我给它的数量为 9,我希望它选择上值为 10、23 将选择 25 等。

var selVal = $('#qtySelect').find("[data-qty='"+ objRtn.numMultiPages +"']").val();
if (selVal != undefined){
   $('#qtySelect').val(selVal);
   console.log(selVal);
} else {
   alert("too many pages");
}

<select name="qtySelect" id="qtySelect" class="form-control">
   <option class="qtyValue" value="14380" data-qty="5">Quantity: 5</option>
   <option class="qtyValue" value="14381" data-qty="10">Quantity: 10</option>
   <option class="qtyValue" value="14382" data-qty="15">Quantity: 15</option>
   <option class="qtyValue" value="14383" data-qty="25">Quantity: 25</option>
   <option class="qtyValue" value="14384" data-qty="50">Quantity: 50</option>
   <option class="qtyValue" value="14385" data-qty="100">Quantity: 100 </option>
</select>

请问有人可以建议一种方法来选择最接近的上限值吗?

谢谢大卫

4

2 回答 2

0

简单的数学;

var rounded_value = 5 * Math.round(objRtn.numMultiPages/5);

对于较高的值,您可以自己检查;

if (objRtn.numMultiPages > 25 && objRtn.numMultiPages < 50 ) {
     var rounded_value = 25 * Math.round(objRtn.numMultiPages/25);
} else if (objRtn.numMultiPages > 50 ) {
     var rounded_value = 50 * Math.round(objRtn.numMultiPages/50);
}...

等等等等

于 2013-10-30T16:52:51.750 回答
0

尝试这个:

var vals = -1;
$('#qtySelect').find("[data-qty]").each(function(i, el){
    if(objRtn.numMultiPages < $(el).data("qty") && vals === -1){
        vals = $(el).data("qty");
        return;
    }
});

var selVal = $('#qtySelect').find("[data-qty='"+ vals +"']").val();
if (selVal != undefined){
   $('#qtySelect').val(selVal);
   console.log(selVal);
} else {
   alert("too many pages");
}

JSFiddle:http: //jsfiddle.net/ZLFE6/

于 2013-10-30T17:09:30.893 回答